📄 functional.py
字号:
tc.follow(name) tc.url(milestone_url + '/' + name) tc.formvalue('modifymilestone', 'description', 'Some description.') tc.submit('save') tc.url(milestone_url) # Make sure the milestone isn't closed self._tester.go_to_roadmap() tc.find(name) # Cancel more modifications tc.go(milestone_url) tc.url(milestone_url) tc.follow(name) tc.formvalue('modifymilestone', 'description', '~~Some other description.~~') tc.submit('cancel') tc.url(milestone_url) # Verify the correct modifications show up self._tester.go_to_roadmap() tc.find('Some description.') tc.follow(name) tc.find('Some description.')class TestAdminMilestoneDue(FunctionalTwillTestCaseSetup): def runTest(self): """Admin milestone duedate""" name = "DueMilestone" duedate = datetime.now(tz=utc) duedate_string = format_date(duedate, tzinfo=utc) self._tester.create_milestone(name, due=duedate_string) tc.find(duedate_string)class TestAdminMilestoneDetailDue(FunctionalTwillTestCaseSetup): def runTest(self): """Admin modify milestone duedate on detail page""" name = "DetailDueMilestone" # Create a milestone self._tester.create_milestone(name) # Modify the details of the milestone milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.url(milestone_url) tc.follow(name) tc.url(milestone_url + '/' + name) duedate = datetime.now(tz=utc) duedate_string = format_date(duedate, tzinfo=utc) tc.formvalue('modifymilestone', 'due', duedate_string) tc.submit('save') tc.url(milestone_url + '$') tc.find(name + '(<[^>]*>|\\s)*'+ duedate_string, 's')class TestAdminMilestoneCompleted(FunctionalTwillTestCaseSetup): def runTest(self): """Admin milestone completed""" name = "CompletedMilestone" self._tester.create_milestone(name) milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.url(milestone_url) tc.follow(name) tc.url(milestone_url + '/' + name) tc.formvalue('modifymilestone', 'completed', True) tc.submit('save') tc.url(milestone_url + "$")class TestAdminMilestoneCompletedFuture(FunctionalTwillTestCaseSetup): def runTest(self): """Admin milestone completed in the future""" name = "CompletedFutureMilestone" self._tester.create_milestone(name) milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.url(milestone_url) tc.follow(name) tc.url(milestone_url + '/' + name) tc.formvalue('modifymilestone', 'completed', True) cdate = datetime.now(tz=utc) + timedelta(days=1) cdate_string = format_date(cdate, tzinfo=localtz) tc.formvalue('modifymilestone', 'completeddate', cdate_string) tc.submit('save') tc.find('Completion date may not be in the future') # And make sure it wasn't marked as completed. self._tester.go_to_roadmap() tc.find(name)class TestAdminMilestoneRemove(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove milestone""" name = "MilestoneRemove" self._tester.create_milestone(name) milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.formvalue('milestone_table', 'sel', name) tc.submit('remove') tc.url(milestone_url + '$') tc.notfind(name)class TestAdminMilestoneRemoveMulti(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove multiple milestones""" name = "MultiRemoveMilestone" count = 3 for i in range(count): self._tester.create_milestone("%s%s" % (name, i)) milestone_url = self._tester.url + '/admin/ticket/milestones' tc.go(milestone_url) tc.url(milestone_url + '$') for i in range(count): tc.find("%s%s" % (name, i)) for i in range(count): tc.formvalue('milestone_table', 'sel', "%s%s" % (name, i)) tc.submit('remove') tc.url(milestone_url + '$') for i in range(count): tc.notfind("%s%s" % (name, i))class TestAdminMilestoneNonRemoval(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove no selected milestone""" milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.formvalue('milestone_table', 'remove', 'Remove selected items') tc.submit('remove') tc.find('No milestone selected')class TestAdminMilestoneDefault(FunctionalTwillTestCaseSetup): def runTest(self): """Admin set default milestone""" name = "DefaultMilestone" self._tester.create_milestone(name) milestone_url = self._tester.url + "/admin/ticket/milestones" tc.go(milestone_url) tc.formvalue('milestone_table', 'default', name) tc.submit('apply') tc.find('type="radio" name="default" value="%s" checked="checked"' % \ name) # verify it is the default on the newticket page. tc.go(self._tester.url + '/newticket') tc.find('<option selected="selected">%s</option>' % name)class TestAdminPriority(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create priority""" self._tester.create_priority()class TestAdminPriorityDuplicates(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create duplicate priority""" name = "DuplicatePriority" self._tester.create_priority(name) self._tester.create_priority(name) tc.find('Priority %s already exists' % name)class TestAdminPriorityModify(FunctionalTwillTestCaseSetup): def runTest(self): """Admin modify priority""" name = "ModifyPriority" self._tester.create_priority(name) priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') tc.find(name) tc.follow(name) tc.formvalue('modenum', 'name', name * 2) tc.submit('save') tc.url(priority_url + '$') tc.find(name * 2)class TestAdminPriorityRemove(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove priority""" name = "RemovePriority" self._tester.create_priority(name) priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') tc.find(name) tc.formvalue('enumtable', 'sel', name) tc.submit('remove') tc.url(priority_url + '$') tc.notfind(name)class TestAdminPriorityRemoveMulti(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove multiple priorities""" name = "MultiRemovePriority" count = 3 for i in range(count): self._tester.create_priority("%s%s" % (name, i)) priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') for i in range(count): tc.find("%s%s" % (name, i)) for i in range(count): tc.formvalue('enumtable', 'sel', "%s%s" % (name, i)) tc.submit('remove') tc.url(priority_url + '$') for i in range(count): tc.notfind("%s%s" % (name, i))class TestAdminPriorityNonRemoval(FunctionalTwillTestCaseSetup): def runTest(self): """Admin remove no selected priority""" priority_url = self._tester.url + "/admin/ticket/priority" tc.go(priority_url) tc.formvalue('enumtable', 'remove', 'Remove selected items') tc.submit('remove') tc.find('No priority selected')class TestAdminPriorityDefault(FunctionalTwillTestCaseSetup): def runTest(self): """Admin default priority""" name = "DefaultPriority" self._tester.create_priority(name) priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') tc.find(name) tc.formvalue('enumtable', 'default', name) tc.submit('apply') tc.url(priority_url + '$') tc.find('radio.*"%s"\\schecked="checked"' % name)class TestAdminPriorityDetail(FunctionalTwillTestCaseSetup): def runTest(self): """Admin modify priority details""" name = "DetailPriority" # Create a priority self._tester.create_priority(name + '1') # Modify the details of the priority priority_url = self._tester.url + "/admin/ticket/priority" tc.go(priority_url) tc.url(priority_url + '$') tc.follow(name + '1') tc.url(priority_url + '/' + name + '1') tc.formvalue('modenum', 'name', name + '2') tc.submit('save') tc.url(priority_url + '$') # Cancel more modifications tc.go(priority_url) tc.follow(name) tc.formvalue('modenum', 'name', name + '3') tc.submit('cancel') tc.url(priority_url + '$') # Verify that only the correct modifications show up tc.notfind(name + '1') tc.find(name + '2') tc.notfind(name + '3')class TestAdminPriorityRenumber(FunctionalTwillTestCaseSetup): def runTest(self): """Admin renumber priorities""" valuesRE = re.compile('<select name="value_([0-9]+)">', re.M) html = b.get_html() max_priority = max([int(x) for x in valuesRE.findall(html)]) name = "RenumberPriority" self._tester.create_priority(name + '1') self._tester.create_priority(name + '2') priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') tc.find(name + '1') tc.find(name + '2') tc.formvalue('enumtable', 'value_%s' % (max_priority + 1), str(max_priority + 2)) tc.formvalue('enumtable', 'value_%s' % (max_priority + 2), str(max_priority + 1)) tc.submit('apply') tc.url(priority_url + '$') # Verify that their order has changed. tc.find(name + '2.*' + name + '1', 's')class TestAdminPriorityRenumberDup(FunctionalTwillTestCaseSetup): def runTest(self): """Admin badly renumber priorities""" # Make the first priority the 2nd priority, and leave the 2nd priority # as the 2nd priority. priority_url = self._tester.url + '/admin/ticket/priority' tc.go(priority_url) tc.url(priority_url + '$') tc.formvalue('enumtable', 'value_1', '2') tc.submit('apply') tc.url(priority_url + '$') tc.find('Order numbers must be unique')class TestAdminResolution(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create resolution""" self._tester.create_resolution()class TestAdminResolutionDuplicates(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create duplicate resolution""" name = "DuplicateResolution" self._tester.create_resolution(name) self._tester.create_resolution(name) tc.find('Resolution %s already exists' % name)class TestAdminSeverity(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create severity""" self._tester.create_severity()class TestAdminSeverityDuplicates(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create duplicate severity""" name = "DuplicateSeverity" self._tester.create_severity(name) self._tester.create_severity(name) tc.find('Severity %s already exists' % name)class TestAdminType(FunctionalTwillTestCaseSetup): def runTest(self): """Admin create type"""
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -