5
URL = 'http://iso.qa.dev.stgraber.org/xmlrpc.php'
8
class ResultTests(unittest.TestCase):
10
self.instance = qatracker.QATracker(URL, 'user', 'user')
11
self.milestone = self.instance.get_milestones('testing')[0]
12
self.builds = self.milestone.get_builds('active')
14
def test_result_by_object(self):
16
for product in self.instance.get_products('active'):
17
builds = [build for build in self.builds
18
if build.productid == product.id]
22
for testcase in product.get_testcases(self.milestone, 'mandatory'):
24
results += build.get_results(testcase)
32
self.assertIsInstance(result, qatracker.QATrackerResult)
33
self.assertIsInstance(result.id, int)
34
self.assertIsInstance(result.date, datetime.datetime)
35
self.assertIsInstance(result.comment, str)
36
self.assertTrue(str(result).startswith('QATrackerResult: '))
38
def test_result_by_id(self):
40
for product in self.instance.get_products('active'):
41
builds = [build for build in self.builds
42
if build.productid == product.id]
46
for testcase in product.get_testcases(self.milestone, 'mandatory'):
48
results += build.get_results(testcase.id)
56
self.assertIsInstance(result, qatracker.QATrackerResult)
57
self.assertIsInstance(result.id, int)
58
self.assertIsInstance(result.date, datetime.datetime)
59
self.assertIsInstance(result.comment, str)
60
self.assertTrue(str(result).startswith('QATrackerResult: '))
62
def test_result_add_by_object(self):
66
for product in self.instance.get_products('active'):
67
builds = [build for build in self.builds
68
if build.productid == product.id]
73
testcase = product.get_testcases(self.milestone, 'mandatory')[0]
76
result = build.add_result(testcase, 'failed')
77
self.assertIsInstance(result, qatracker.QATrackerResult)
78
self.assertIsInstance(result.id, int)
79
self.assertIsInstance(result.date, datetime.datetime)
80
self.assertIsInstance(result.comment, str)
81
self.assertEquals(result.result, 0)
82
self.assertTrue(str(result).startswith('QATrackerResult: '))
84
result.comment = "edited"
88
self.assertRaises(Exception, result.save)
90
def test_result_add_by_id(self):
94
for product in self.instance.get_products('active'):
95
builds = [build for build in self.builds
96
if build.productid == product.id]
101
testcase = product.get_testcases(self.milestone, 'mandatory')[0]
104
result = build.add_result(testcase.id, 2)
105
self.assertIsInstance(result, qatracker.QATrackerResult)
106
self.assertIsInstance(result.id, int)
107
self.assertIsInstance(result.date, datetime.datetime)
108
self.assertIsInstance(result.comment, str)
109
self.assertEquals(result.result, 2)
110
self.assertTrue(str(result).startswith('QATrackerResult: '))
114
self.assertRaises(Exception, result.delete)
116
def test_result_invalid_remove(self):
117
result = qatracker.QATrackerResult(self.instance, {'id': '0'})
118
self.assertRaises(Exception, result.delete)
120
def test_result_invalid_remove_no_access(self):
121
instance = qatracker.QATracker(URL)
122
result = qatracker.QATrackerResult(instance, {'id': '0'})
123
self.assertRaises(Exception, result.delete)
125
def test_result_invalid_save(self):
126
result = qatracker.QATrackerResult(self.instance, {'id': '0',
131
self.assertRaises(Exception, result.save)
133
def test_result_invalid_save_no_access(self):
134
instance = qatracker.QATracker(URL)
135
result = qatracker.QATrackerResult(instance, {'id': '0'})
136
self.assertRaises(Exception, result.save)
138
def test_result_invalid_add_invalid_testcase(self):
139
self.assertRaises(IndexError, self.builds[0].add_result,
140
testcase=object(), result='in progress')
142
def test_result_invalid_add_invalid_result(self):
143
self.assertRaises(TypeError, self.builds[0].add_result,
144
testcase=1, result=['in progress'])
146
def test_result_invalid_add_invalid_bugs(self):
147
self.assertRaises(TypeError, self.builds[0].add_result,
148
testcase=1, result='in progress', bugs="bla")
150
def test_result_invalid_add_invalid_bugnumber(self):
151
self.assertRaises(ValueError, self.builds[0].add_result,
152
testcase=1, result='in progress', bugs={-1: 0})
154
def test_result_invalid_add_invalid_bugimportance(self):
155
self.assertRaises(ValueError, self.builds[0].add_result,
156
testcase=1, result='in progress', bugs={123: 'a'})
158
def test_result_invalid_add_invalid_response(self):
159
self.assertRaises(Exception, self.builds[0].add_result,
160
testcase=-1, result='in progress')
162
def test_result_invalid_add_invalid_no_access(self):
163
instance = qatracker.QATracker(URL)
164
milestone = instance.get_milestones('testing')[0]
165
builds = milestone.get_builds('active')
166
self.assertRaises(Exception, builds[0].add_result,
167
testcase=10, result='in progress')
169
def test_result_invalid_id(self):
170
self.assertRaises(IndexError, self.builds[0].get_results, (object()))
172
def test_result_invalid_no_status(self):
173
self.assertEquals(self.builds[0].get_results(1234, []), [])