/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/tests/blackbox/test_merge_directive.py

Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
        self.build_tree_contents([('tree1/file', 'a\nb\nc\nd\ne\n')])
47
47
        tree1.commit('bar')
48
48
        os.chdir('tree1')
 
49
        return tree1, tree2
49
50
 
50
51
    def test_merge_directive(self):
51
52
        self.prepare_merge_directive()
97
98
            gpg.GPGStrategy = old_strategy
98
99
        self.assertContainsRe(md_text, '^-----BEGIN PSEUDO-SIGNED CONTENT')
99
100
 
100
 
    def test_mail(self):
101
 
        self.prepare_merge_directive()
 
101
    def run_bzr_fakemail(self, *args, **kwargs):
102
102
        sendmail_calls = []
103
103
        def sendmail(self, from_, to, message):
104
104
            sendmail_calls.append((self, from_, to, message))
 
105
        connect_calls = []
 
106
        def connect(self, host='localhost', port=0):
 
107
            connect_calls.append((self, host, port))
105
108
        old_sendmail = smtplib.SMTP.sendmail
106
109
        smtplib.SMTP.sendmail = sendmail
 
110
        old_connect = smtplib.SMTP.connect
 
111
        smtplib.SMTP.connect = connect
107
112
        try:
108
 
            md_text = self.run_bzr('merge-directive', '--mail-to',
109
 
                                   'pqm@example.com', '--plain', '../tree2',
110
 
                                   '.')[0]
 
113
            result = self.run_bzr(*args, **kwargs)
111
114
        finally:
112
115
            smtplib.SMTP.sendmail = old_sendmail
 
116
            smtplib.SMTP.connect = old_connect
 
117
        return result + (connect_calls, sendmail_calls)
 
118
 
 
119
    def test_mail_default(self):
 
120
        tree1, tree2 = self.prepare_merge_directive()
 
121
        md_text, errr, connect_calls, sendmail_calls =\
 
122
            self.run_bzr_fakemail('merge-directive', '--mail-to',
 
123
                                  'pqm@example.com', '--plain', '../tree2',
 
124
                                  '.')
113
125
        self.assertEqual('', md_text)
 
126
        self.assertEqual(1, len(connect_calls))
 
127
        call = connect_calls[0]
 
128
        self.assertEqual(('localhost', 0), call[1:3])
114
129
        self.assertEqual(1, len(sendmail_calls))
115
130
        call = sendmail_calls[0]
116
131
        self.assertEqual(('J. Random Hacker <jrandom@example.com>',
117
132
                          'pqm@example.com'), call[1:3])
118
133
        self.assertContainsRe(call[3], EMAIL1)
 
134
 
 
135
    def test_mail_uses_config(self):
 
136
        tree1, tree2 = self.prepare_merge_directive()
 
137
        tree1.branch.get_config().set_user_option('smtp_server', 'bogushost')
 
138
        md_text, errr, connect_calls, sendmail_calls =\
 
139
            self.run_bzr_fakemail('merge-directive', '--mail-to',
 
140
                                  'pqm@example.com', '--plain', '../tree2',
 
141
                                  '.')
 
142
        call = connect_calls[0]
 
143
        self.assertEqual(('bogushost', 0), call[1:3])