annotate test_bugzilla.py @ 24:96f841399b40

Added resilience for case where bugs have no attachments
author Atul Varma <avarma@mozilla.com>
date Thu, 22 Apr 2010 16:35:27 -0700
parents f6efd07c8356
children cf3583d9bf07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
1 import os
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
2 import doctest
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
3 import unittest
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
4
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
5 from minimock import Mock
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
6 import bugzilla
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
7
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
8 TEST_CFG_WITH_LOGIN = {'api_server': 'http://foo/latest',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
9 'username': 'bar',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
10 'password': 'baz'}
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
11
11
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
12 TEST_USER = {
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
13 u'email': u'avarma@mozilla.com', u'real_name': u'Atul Varma [:atul]',
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
14 u'can_login': u'1', u'name': u'avarma@mozilla.com',
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
15 u'id': u'298253'
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
16 }
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
17
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
18 TEST_USER_SEARCH_RESULT = {
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
19 u'users': [TEST_USER]
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
20 }
29efa19d959a Added bzgetpatch.py and bugzilla.User class
Atul Varma <avarma@mozilla.com>
parents: 9
diff changeset
21
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
22 TEST_ATTACHMENT_WITHOUT_DATA = {
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
23 u'is_obsolete': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
24 u'description': u'test upload', u'encoding': u'base64',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
25 u'file_name': u'contents.txt', u'is_patch': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
26 u'creation_time': u'2010-04-13T18:02:00Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
27 u'bug_id': u'536619',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
28 u'last_change_time': u'2010-04-13T18:02:00Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
29 u'content_type': u'text/plain',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
30 u'attacher': {u'name': u'avarma'}, u'is_url': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
31 u'id': u'438797', u'is_private': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
32 u'size': u'8'
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
33 }
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
34
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
35 TEST_ATTACHMENT_WITH_DATA = {
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
36 u'is_obsolete': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
37 u'description': u'test upload', u'encoding': u'base64',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
38 u'file_name': u'contents.txt', u'is_patch': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
39 u'creation_time': u'2010-04-13T18:02:00Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
40 u'data': u'dGVzdGluZyE=', u'bug_id': u'536619',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
41 u'last_change_time': u'2010-04-13T18:02:00Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
42 u'content_type': u'text/plain',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
43 u'attacher': {u'name': u'avarma'}, u'is_url': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
44 u'id': u'438797', u'is_private': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
45 u'size': u'8'
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
46 }
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
47
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
48 TEST_BUG = {
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
49 u'attachments':
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
50 [{u'is_obsolete': u'0',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
51 u'description': u'here is a description',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
52 u'file_name': u'traceback-on-package-exception',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
53 u'is_patch': u'1', u'creation_time': u'2010-04-11T19:16:00Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
54 u'last_change_time': u'2010-04-11T19:16:59Z',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
55 u'bug_id': u'558680', u'content_type': u'text/plain',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
56 u'attacher': {u'name': u'asqueella'},
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
57 u'id': u'438381', u'size': u'1320'}],
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
58 u'summary': u'Here is a summary',
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
59 u'id': u'558680'
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
60 }
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
61
24
96f841399b40 Added resilience for case where bugs have no attachments
Atul Varma <avarma@mozilla.com>
parents: 20
diff changeset
62 TEST_BUG_NO_ATTACHMENTS = {
96f841399b40 Added resilience for case where bugs have no attachments
Atul Varma <avarma@mozilla.com>
parents: 20
diff changeset
63 u'summary': u'Here is another summary',
96f841399b40 Added resilience for case where bugs have no attachments
Atul Varma <avarma@mozilla.com>
parents: 20
diff changeset
64 u'id': u'558681'
96f841399b40 Added resilience for case where bugs have no attachments
Atul Varma <avarma@mozilla.com>
parents: 20
diff changeset
65 }
96f841399b40 Added resilience for case where bugs have no attachments
Atul Varma <avarma@mozilla.com>
parents: 20
diff changeset
66
16
aff78060802d made MockBugzillaApi better
Atul Varma <avarma@mozilla.com>
parents: 15
diff changeset
67 class MockBugzillaApi(bugzilla.BugzillaApi):
20
f6efd07c8356 Implemented 'bzpatch.py post'
Atul Varma <avarma@mozilla.com>
parents: 16
diff changeset
68 def __init__(self, config=None):
f6efd07c8356 Implemented 'bzpatch.py post'
Atul Varma <avarma@mozilla.com>
parents: 16
diff changeset
69 if config is None:
f6efd07c8356 Implemented 'bzpatch.py post'
Atul Varma <avarma@mozilla.com>
parents: 16
diff changeset
70 config = {}
16
aff78060802d made MockBugzillaApi better
Atul Varma <avarma@mozilla.com>
parents: 15
diff changeset
71 bugzilla.BugzillaApi.__init__(self,
20
f6efd07c8356 Implemented 'bzpatch.py post'
Atul Varma <avarma@mozilla.com>
parents: 16
diff changeset
72 config=config,
16
aff78060802d made MockBugzillaApi better
Atul Varma <avarma@mozilla.com>
parents: 15
diff changeset
73 jsonreq=Mock('jsonreq'),
aff78060802d made MockBugzillaApi better
Atul Varma <avarma@mozilla.com>
parents: 15
diff changeset
74 getpass=Mock('getpass'))
15
798f8f33c418 added bzapi.users, bzapi.attachments, and bzapi.bugs as primary accessors of bugzilla information.
Atul Varma <avarma@mozilla.com>
parents: 11
diff changeset
75 self.request = Mock('bzapi.request')
798f8f33c418 added bzapi.users, bzapi.attachments, and bzapi.bugs as primary accessors of bugzilla information.
Atul Varma <avarma@mozilla.com>
parents: 11
diff changeset
76
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
77 DOCTEST_EXTRA_GLOBS = {
15
798f8f33c418 added bzapi.users, bzapi.attachments, and bzapi.bugs as primary accessors of bugzilla information.
Atul Varma <avarma@mozilla.com>
parents: 11
diff changeset
78 'Mock': Mock,
798f8f33c418 added bzapi.users, bzapi.attachments, and bzapi.bugs as primary accessors of bugzilla information.
Atul Varma <avarma@mozilla.com>
parents: 11
diff changeset
79 'MockBugzillaApi': MockBugzillaApi
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
80 }
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
81
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
82 for globname in globals().keys():
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
83 if globname.startswith('TEST_'):
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
84 DOCTEST_EXTRA_GLOBS[globname] = globals()[globname]
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
85 del globname
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
86
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
87 class Tests(unittest.TestCase):
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
88 # TODO: Add unit tests here.
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
89 pass
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
90
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
91 def get_tests_in_module(module):
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
92 tests = []
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
93
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
94 loader = unittest.TestLoader()
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
95 suite = loader.loadTestsFromModule(module)
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
96 for test in suite:
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
97 tests.append(test)
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
98
8
993fc3b27263 made whitespace better
Atul Varma <avarma@mozilla.com>
parents: 7
diff changeset
99 optionflags = (doctest.NORMALIZE_WHITESPACE |
993fc3b27263 made whitespace better
Atul Varma <avarma@mozilla.com>
parents: 7
diff changeset
100 doctest.REPORT_UDIFF)
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
101 finder = doctest.DocTestFinder()
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
102 doctests = finder.find(module, extraglobs=DOCTEST_EXTRA_GLOBS)
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
103 for test in doctests:
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
104 if len(test.examples) > 0:
8
993fc3b27263 made whitespace better
Atul Varma <avarma@mozilla.com>
parents: 7
diff changeset
105 tests.append(doctest.DocTestCase(test,
993fc3b27263 made whitespace better
Atul Varma <avarma@mozilla.com>
parents: 7
diff changeset
106 optionflags=optionflags))
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
107
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
108 return tests
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
109
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
110 def run_tests(verbosity=2):
9
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
111 modules = [filename[:-3] for filename in os.listdir('.')
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
112 if filename.endswith('.py')
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
113 and filename not in ['minimock.py']]
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
114 tests = []
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
115 for modulename in modules:
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
116 module = __import__(modulename)
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
117 tests.extend(get_tests_in_module(module))
295c54288dd1 Added Bug and Attachment classes.
Atul Varma <avarma@mozilla.com>
parents: 8
diff changeset
118
7
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
119 suite = unittest.TestSuite(tests)
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
120 runner = unittest.TextTestRunner(verbosity=verbosity)
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
121 runner.run(suite)
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
122
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
123 if __name__ == '__main__':
7a04d148ead6 Added tests
Atul Varma <avarma@mozilla.com>
parents:
diff changeset
124 run_tests()