def test_0070_BulkEditTestSuites(self): """Bulk edit test suites""" helper.treeview.Select((0, 6)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit test suites'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin.leftwinListView.TypeKeys('^+a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) for i in range(4): helper.treeview.Select((0, 6, i)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(2 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 0) p.TypeKeys(1 * '^{TAB}') helper.treeview.Select((0, 6)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit test suites'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin.leftwinListView.TypeKeys('^a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) for i in range(4): helper.treeview.Select((0, 6, i)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(2 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 20) p.TypeKeys(1 * '^{TAB}')
def test_0020_BulkEditTextSection(self): """Bulk edit text sections""" global numberofartefacts helper.treeview.Select((0, 0)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit text sections'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin.leftwinListView.TypeKeys('^+a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) for i in range(5): helper.treeview.Select((0, 0, i)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 0) p.TypeKeys(2 * '^{TAB}') helper.treeview.Select((0, 0)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit text sections'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin.leftwinListView.TypeKeys('^a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) for i in range(5): helper.treeview.Select((0, 0, i)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 20) p.TypeKeys(2 * '^{TAB}')
def step1(self): print 'test cai ji' app = application.Application() app.start_(config.app_cj_path, timeout=20, retry_interval=.5) window = timings.WaitUntilPasses(20, .5, lambda: app.window_(title_re=u'.*用户登录.*')) window.Wait('ready', 20, .5) window.Edit2.TypeKeys(config.app_user_name) window.Edit1.TypeKeys(config.app_password) time.sleep(2) timings.WaitUntil(30, 0.5, window.Button1.IsEnabled, True) window.Button2.Click() win1 = timings.WaitUntilPasses(20, .5, lambda: app.window_(title_re=u'.*选取就绪试验编号.*')) win1.Wait('ready', 100, .5) #print win1.TreeView.Texts() #print win1.TreeView.Root() node = win1.TreeView2.GetItem(path=u'\ \待做试验项目\20140729151356' ) rct = node.Rectangle() win1.SysTreeView32.ClickInput(coords=(48, 47), wheel_dist=.5) print rct.left - 5, rct.top + 5 win1.SysTreeView32.ClickInput(coords=(rct.left - 5, rct.top + 5), wheel_dist=.5) time.sleep(3) win1.Button.Click() mainform = timings.WaitUntilPasses(30, .5, lambda: app.window_(title_re=u'.*铁路试验实时采集系统.*')) mainform.Wait('ready', 20, 1) time.sleep(2) try: mainform.Button1.Click() except: print "error get " print 'start wait ' + time.strftime("%Y%m%d%H%M%S", time.localtime()) timings.WaitUntil(20, 0.5, mainform.Button1.IsEnabled, True) print 'end wait ' + time.strftime("%Y%m%d%H%M%S", time.localtime())
def step3(self, case): """ 采集系统开始。。。 """ if case['type'] == 'WN': self.app.start_(config.app_cjWN_path, timeout=20, retry_interval=.5) else: self.app.start_(config.app_cjYL_path, timeout=20, retry_interval=.5) window = timings.WaitUntilPasses(20, .5, lambda: self.app.window_(title_re=u'.*用户登录.*')) # window.print_control_identifiers() window.Wait('ready', 20, .5) window.Edit2.TypeKeys(config.teddy_user_name) window.Edit1.TypeKeys(config.teddy_password) time.sleep(.6) timings.WaitUntil(30, 0.5, window.Button1.IsEnabled, True) window.Button1.Click() self.win1 = timings.WaitUntilPasses(20, .5, lambda: self.app.window_(title_re=u'.*选取就绪试验编号.*')) self.win1.Wait('ready', 100, .5) self.win1.TreeView.Wait('30', .5) nodepath = u'\\待做试验项目\\' + unicode(self.wtbh, "ascii") node = self.win1.TreeView2.GetItem(nodepath) self.win1.TreeView2.Select(nodepath) rct = node.Rectangle() self.win1.SysTreeView32.ClickInput(coords=(rct.left - 5, rct.top + 5), wheel_dist=.5) self.win1.Button.Click() self.mainform = timings.WaitUntilPasses(30, .5, lambda: self.app.window_(title_re=u'.*铁路试验实时采集系统.*')) self.mainform.Wait('ready', 20, 1) time.sleep(1) self.mainform.Button1.Click() time.sleep(1)
def addGlossaryEntry(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New glossary entry ...") editwin = self.app['Edit glossary entry'] editwin['Term:Edit'].SetText(kwargs['term']) editwin['Description:RICHEDIT50W'].SetText(kwargs['description']) editwin['Save && Close'].Click()
def test_0050_BulkEditUsecases(self): """Bulk edit usecases""" helper.treeview.Select((0, 4)) coltypes = [{ 'type': int, 'key': 'id' }, { 'type': unicode, 'key': 'summary' }, { 'type': unicode, 'key': 'priority' }, { 'type': unicode, 'key': 'usefrequency' }, { 'type': unicode, 'key': 'actors' }, { 'type': unicode, 'key': 'stakeholders' }, { 'type': unicode, 'key': 'date' }, { 'type': unicode, 'key': 'user' }] ref_usecases = [af for af in helper.readArtefactList(coltypes)] helper.treeview.Select((0, 4)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit usecases'] editwin.panelListView.TypeKeys('^a') editwin['Priority:ComboBox'].Select(2) editwin['Use frequency:ComboBox'].Select(5) editwin['Actors:ComboBox'].Select(1) editwin['Stakeholders:ComboBox'].Select(1) p = editwin['Priority:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.TypeKeys('^a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 4)) act_usecases = [af for af in helper.readArtefactList(coltypes)] for i in range(5): act = act_usecases[i] ref = ref_usecases[i] self.assertEqual(act['id'], ref['id']) self.assertEqual(act['summary'], ref['summary']) self.assertEqual(act['priority'], 'Expected') self.assertEqual(act['usefrequency'], 'Once') self.assertEqual(act['stakeholders'], ref_usecases[0]['stakeholders']) # check tags for only one certain usecase helper.treeview.Select((0, 4, 0)) p = helper.afeditorwin['Summary:Edit'].Parent().Parent() p.TypeKeys(3 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 20) p.TypeKeys(2 * '^{TAB}')
def test_0020_InspectStatistics(self): """Inspect statistics dialog""" timing.WaitUntil(10, 1, helper.afeditor.IsEnabled) helper.afeditor.MenuSelect("File -> Statistics ...") listitems = [] coltypes = [{ 'type': unicode, 'key': 'label' }, { 'type': unicode, 'key': 'value' }] for listitem in helper.readArtefactList( coltypes, helper.afeditorwin['ListView']): listitems.append(listitem) helper.afeditorwin['OKButton'].Click() statistics = [{ 'value': u'3 (2,4,5)', 'label': u'Features without requirements' }, { 'value': u'14 (2,4,5,6,7,8,9,10,11,12,13,14,15,16)', 'label': u'Requirements without testcases' }, { 'value': u'2 (1,6)', 'label': u'Testcases without requirements' }, { 'value': u'1 (6)', 'label': u'Test cases without test suites' }, { 'value': u'1 (4)', 'label': u'Testsuites without testcases' }, { 'value': u'1 (1)', 'label': u'Usecases without features or requirements' }, { 'value': u'5', 'label': u'Text sections' }, { 'value': u'5', 'label': u'Glossary entries' }, { 'value': u'5', 'label': u'Features' }, { 'value': u'17', 'label': u'Requirements' }, { 'value': u'5', 'label': u'Usecases' }, { 'value': u'6', 'label': u'Testcases' }, { 'value': u'4', 'label': u'Testsuites' }] for expected_item, actual_item in zip(statistics, listitems): self.assertEqual(expected_item['label'], actual_item['label']) self.assertEqual(expected_item['value'], actual_item['value'])
def test_0060_BulkEditTestcases(self): """Bulk edit testcases""" helper.treeview.Select((0, 5)) coltypes = [{ 'type': int, 'key': 'id' }, { 'type': unicode, 'key': 'title' }, { 'type': unicode, 'key': 'key' }, { 'type': unicode, 'key': 'date' }, { 'type': unicode, 'key': 'user' }, { 'type': unicode, 'key': 'script' }, { 'type': unicode, 'key': 'purpose' }] ref_testcases = [af for af in helper.readArtefactList(coltypes)] helper.treeview.Select((0, 5)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit testcases'] editwin.panelListView.TypeKeys('^a') editwin['Key:ComboBox'].Select(2) p = editwin['Key:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.Select(0) editwin.leftwinListView.TypeKeys('{SPACE}') editwin.leftwinListView.Select(1) editwin.leftwinListView.TypeKeys('{SPACE}') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 5)) act_testcases = [af for af in helper.readArtefactList(coltypes)] for i in range(len(act_testcases)): act = act_testcases[i] ref = ref_testcases[i] self.assertEqual(act['id'], ref['id']) self.assertEqual(act['title'], ref['title']) self.assertEqual(act['key'], ref_testcases[1]['key']) # check tags for only certain testcases for pos, ntags in zip((0, 3, 4), (3, 4, 2)): helper.treeview.Select((0, 5, pos)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(3 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, ntags) p.TypeKeys(2 * '^{TAB}')
def editGlossaryEntry(self, pos, callback): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.treeview.Select((0, 1, pos)) self.afeditor.MenuSelect("Edit -> Edit artefact ...") editwin = self.app['Edit glossary entry'] data = {} data['term'] = editwin['Term:Edit'].TextBlock() data['description'] = editwin['Description:RICHEDIT50W'].TextBlock() callback(data) editwin['Term:Edit'].SetText(data['term']) editwin['Description:RICHEDIT50W'].SetText(data['description']) editwin['Save && Close'].Click()
def editTextSection(self, pos, callback): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.treeview.Select((0, 0, pos)) self.afeditor.MenuSelect("Edit -> Edit artefact ...") editwin = self.app['Edit section'] data = {} data['title'] = editwin['Title:Edit'].TextBlock() data['content'] = editwin['Content:RICHEDIT50W'].TextBlock() callback(data) editwin['Title:Edit'].SetText(data['title']) editwin['Content:RICHEDIT50W'].SetText(data['content']) editwin['Save && Close'].Click()
def editRequirement(self, pos, callback): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.treeview.Select((0, 3, pos)) self.afeditor.MenuSelect("Edit -> Edit artefact ...") editwin = self.app['Edit requirement'] data = {} data['title'] = editwin['Title:Edit'].TextBlock() data['description'] = editwin['Description:RICHEDIT50W'].TextBlock() callback(data) editwin['Title:Edit'].SetText(data['title']) editwin['Description:RICHEDIT50W'].SetText(data['description']) editwin['Status:ComboBox'].Select(0) editwin['Save && Close'].Click()
def editTags(self): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("Edit -> Edit tags ...") editwin = self.app['Select tag to edit'] listview = editwin['ListView'] for tag in self.getTags(): listview.Select(tag['id'] - 1) listview.TypeKeys('{ENTER}') edittagwin = self.app['Edit tag'] edittagwin['Short description:Edit'].SetText(tag['short']) edittagwin['Long description:Edit'].SetText(tag['long']) edittagwin['ComboBox'].Select(tag['color']) edittagwin['OKButton'].Click() editwin['Save && Close'].Click()
def addTextSection(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New text section ...") editwin = self.app['Edit section'] editwin['Title:Edit'].SetText(kwargs['title']) editwin['Content:RICHEDIT50W'].SetText(kwargs['content']) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') p.TypeKeys(2 * '^{TAB}') editwin['Save && Close'].Click()
def step1(self): self.app.start_(config.app_gl_path, timeout=20, retry_interval=.5) login_window = timings.WaitUntilPasses(120, .5, lambda: self.app.window_(title_re=u'.*用户登录.*')) login_window.Wait('ready', 20, 1) login_window.Edit1.TypeKeys(config.app_user_name) login_window.Edit2.TypeKeys(config.app_password) timings.WaitUntil(20, 0.5, login_window.Button1.IsEnabled, True) time.sleep(1) login_window.Button1.Click() self.main_form = timings.WaitUntilPasses(30, .5, lambda: self.app.window_(title_re=u'.*铁路试验信息管理系统.*')) time.sleep(2) self.main_form.Wait('ready', 120, 1) time.sleep(3) self.main_form.GetFocus() BringWindowToTop(self.main_form.handle)
def addFeature(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New feature ...") editwin = self.app['Edit feature'] editwin['Title:Edit'].SetText(kwargs['title']) editwin['Description:RICHEDIT50W'].SetText(kwargs['description']) editwin['Key:Edit'].SetText(kwargs['key']) editwin['Priority:ComboBox'].Select(kwargs['priority']) editwin['Status:ComboBox'].Select(kwargs['status']) editwin['Risk:ComboBox'].Select(kwargs['risk']) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys(3 * '^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') p.TypeKeys(2 * '^{TAB}') editwin['Save && Close'].Click()
def addTestcase(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New testcase ...") editwin = self.app['Edit testcase'] editwin['Title:Edit'].SetText(kwargs['title']) editwin['Key:Edit'].SetText(kwargs['key']) editwin['Purpose:Edit'].SetText(kwargs['purpose']) editwin['Prerequisite:Edit'].SetText(kwargs['prerequisite']) editwin['Testdata:Edit'].SetText(kwargs['testdata']) editwin['Steps:Edit'].SetText(kwargs['steps']) editwin['Script:Edit'].SetText(kwargs['script']) editwin['Notes && Questions:Edit'].SetText(kwargs['notes']) editwin.TypeKeys(3 * '^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') editwin.TypeKeys(3 * '^+{TAB}') editwin['Save && Close'].Click()
def test_login_fail(self): print 'test login fail' app = application.Application() app.start_(self.app_path, timeout=20, retry_interval=.5) login_window = timings.WaitUntilPasses(120, .5, lambda: app.window_(title_re=u'.*用户登录.*')) login_window.Wait('ready', 20, 1) self.assertEqual(login_window.ProcessID(), app.process) login_window.Edit1.TypeKeys('aaa') login_window.Edit2.TypeKeys(self.password) timings.WaitUntil(10, 0.5, login_window.Button1.IsEnabled, True) login_window.Button1.Click() time.sleep(.5) app[u'提示'].Button.Click() login_window = timings.WaitUntilPasses(120, .5, lambda: app.window_(title_re=u'.*用户登录.*')) login_window.Wait('ready', 20, 1) self.assertEqual(login_window.ProcessID(), app.process) app.kill_()
def test_login(self): print 'test login' app = application.Application() app.start_(self.app_path, timeout=20, retry_interval=.5) login_window = timings.WaitUntilPasses(120, .5, lambda: app.window_(title_re=u'.*用户登录.*')) login_window.Wait('ready', 20, 1) self.assertEqual(login_window.ProcessID(), app.process) login_window.Edit1.TypeKeys(self.user_name) login_window.Edit2.TypeKeys(self.password) timings.WaitUntil(10, 0.5, login_window.Button1.IsEnabled, True) login_window.Button1.Click() main_form = timings.WaitUntilPasses(30, .5, lambda: app.window_(title_re=u'.*铁路试验信息管理系统.*')) main_form.Wait('ready', 30, 1) main_form.GetFocus() time.sleep(1) self.assertEqual(main_form.GetShowState(), 3) app.kill_()
def addTestsuite(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New testsuite ...") editwin = self.app['Edit testsuite'] editwin['Title:Edit'].SetText(kwargs['title']) editwin['Description:Edit'].SetText(kwargs['description']) editwin.TypeKeys('^{TAB}') editwin["Execution order ID's:Edit"].SetText(kwargs['execorder']) testcaselistview = editwin['Testcases:ListView'] for tcpos in kwargs['testcasepos']: testcaselistview.Select(tcpos) testcaselistview.TypeKeys('{SPACE}') editwin.TypeKeys('^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') editwin.TypeKeys('^{TAB}') editwin['Save && Close'].Click()
def addUsecase(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New usecase ...") editwin = self.app['Edit usecase'] editwin['Summary:Edit'].SetText(kwargs['summary']) editwin['Priority:ComboBox'].Select(kwargs['priority']) editwin['Use frequency:ComboBox'].Select(kwargs['usefrequency']) editwin['Actors:Edit'].SetText(kwargs['actors']) editwin['Stakeholders:Edit'].SetText(kwargs['stakeholders']) editwin['Prerequisites:Edit'].SetText(kwargs['prerequisites']) editwin['Main scenario:Edit'].SetText(kwargs['mainscenario']) editwin['Alt scenario:Edit'].SetText(kwargs['altscenario']) editwin['Notes:Edit'].SetText(kwargs['notes']) editwin.TypeKeys(3 * '^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') editwin.TypeKeys(3 * '^+{TAB}') editwin['Save && Close'].Click()
def setUp(self): self.app = application.Application() self.app_path = "G:\客户端\客户端(新架构-Demo)\\铁路试验信息管理系统.exe".decode('GBK') self.user_name = u'刘晓明' self.password = '******' self.app.start_(self.app_path, timeout=20, retry_interval=.5) login_window = timings.WaitUntilPasses(120, .5, lambda: self.app.window_(title_re=u'.*用户登录.*')) login_window.Wait('ready', 20, 1) login_window.Edit1.TypeKeys(self.user_name) login_window.Edit2.TypeKeys(self.password) timings.WaitUntil(10, 0.5, login_window.Button1.IsEnabled, True) login_window.Button1.Click() self.main_form = timings.WaitUntilPasses(30, .5, lambda: self.app.window_(title_re=u'.*铁路试验信息管理系统.*')) time.sleep(2) self.main_form.Wait('ready', 40, 1) time.sleep(3) self.main_form.GetFocus() BringWindowToTop(self.main_form.handle)
def step2(self): conn = pymssql.connect(host=config.host[2], user='******', password='******', database='SYGLDB_ZhengXu', charset="utf8") cur = conn.cursor() if not cur: raise (NameError, "连接数据库失败") else: print 'connected' sql = "SELECT RealTimeData FROM SYGLDB_ZhengXu.dbo.sys_test_data WHERE ModuleID='68F05EBC-5D34-49C5-9B57-49B688DF24F7' AND wtbh='ZXZQ01-02-GJ-W2014062208'ORDER BY SerialNumber'" cur.execute(sql) lines = cur.fetchall() #f = open("e:\\1.txt") t = serial.Serial("com3", 9600) for line in lines: items = json.loads(line) #print items i = 0 j = len(items) #print j while i < j: if items[i]["Value"] is None: print "none" pass else: strInput = repr(items[i]["Value"]) print strInput n = t.write('a' + strInput + 'b') #t.read(n) i += 1 time.sleep(0.1) t.close() f.close() timings.WaitUntil(10, 0.5, self.mainform.Button11.IsEnabled, True) time.sleep(5) self.app.kill_()
def addRequirement(self, **kwargs): timing.WaitUntil(10, 1, self.afeditor.IsEnabled) self.afeditor.MenuSelect("New -> New requirement ...") editwin = self.app['Edit requirement'] editwin['Title:Edit'].SetText(kwargs['title']) editwin['Description:RICHEDIT50W'].SetText(kwargs['description']) editwin['Key:Edit'].SetText(kwargs['key']) editwin['Priority:ComboBox'].Select(kwargs['priority']) editwin['Status:ComboBox'].Select(kwargs['status']) editwin['Complexity:ComboBox'].Select(kwargs['complexity']) editwin['Assigned:Edit'].SetText(kwargs['assigned']) editwin['Effort:ComboBox'].Select(kwargs['effort']) editwin['Category:ComboBox'].Select(kwargs['category']) editwin.TypeKeys('^{TAB}') editwin['Origin:RICHEDIT50W'].SetText(kwargs['origin']) editwin['Rationale:RICHEDIT50W'].SetText(kwargs['rationale']) editwin.TypeKeys(5 * '^{TAB}') listview = editwin['ListView'] for ti in kwargs['tagid']: listview.Select(ti - 1) listview.TypeKeys('{SPACE}') editwin.TypeKeys(2 * '^{TAB}') editwin['Save && Close'].Click()
def test_0030_BulkEditFeatures(self): """Bulk edit features""" helper.treeview.Select((0, 2)) coltypes = [{ 'type': int, 'key': 'id' }, { 'type': unicode, 'key': 'title' }, { 'type': unicode, 'key': 'priority' }, { 'type': unicode, 'key': 'status' }, { 'type': unicode, 'key': 'key' }, { 'type': unicode, 'key': 'risk' }, { 'type': unicode, 'key': 'date' }, { 'type': unicode, 'key': 'user' }, { 'type': unicode, 'key': 'description' }] ref_features = helper.readArtefactList(coltypes) helper.treeview.Select((0, 2)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit features'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin['Key:ComboBox'].Select(0) editwin['Priority:ComboBox'].Select(4) editwin['Status:ComboBox'].Select(1) editwin['Risk:ComboBox'].Select(3) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.TypeKeys('^+a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 2)) act_features = helper.readArtefactList(coltypes) for act, ref in zip(act_features, ref_features): self.assertEqual(act['title'], ref['title']) self.assertEqual(act['id'], ref['id']) self.assertEqual(act['key'], ref['key']) self.assertEqual(act['description'], ref['description']) self.assertEqual(act['priority'], 'Optional') self.assertEqual(act['status'], 'Submitted') self.assertEqual(act['risk'], '2-Risk') # check tags for only one certain feature helper.treeview.Select((0, 2, 2)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(3 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 0) p.TypeKeys(3 * '^+{TAB}') # and once again ref_features = act_features helper.treeview.Select((0, 2)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit features'] editwin.panelListView.Select(0) editwin.panelListView.TypeKeys('^a') editwin['Key:Edit'].SetText('All the keys are same') editwin['Priority:ComboBox'].Select(0) editwin['Status:ComboBox'].Select(0) editwin['Risk:ComboBox'].Select(0) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.Select(3) editwin.leftwinListView.TypeKeys('{SPACE}') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 2)) act_features = helper.readArtefactList(coltypes) for act, ref in zip(act_features, ref_features): self.assertEqual(act['title'], ref['title']) self.assertEqual(act['id'], ref['id']) self.assertEqual(act['key'], 'All the keys are same') self.assertEqual(act['description'], ref['description']) self.assertEqual(act['priority'], ref['priority']) self.assertEqual(act['status'], ref['status']) self.assertEqual(act['risk'], ref['risk']) # check tags for only one certain feature helper.treeview.Select((0, 2, 1)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(3 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 1) p.TypeKeys(3 * '^+{TAB}')
def test_0040_BulkEditRequirements(self): """Bulk edit requirements""" helper.treeview.Select((0, 3)) coltypes = [{ 'type': int, 'key': 'id' }, { 'type': unicode, 'key': 'title' }, { 'type': unicode, 'key': 'priority' }, { 'type': unicode, 'key': 'status' }, { 'type': unicode, 'key': 'complexity' }, { 'type': unicode, 'key': 'assigned' }, { 'type': unicode, 'key': 'effort' }, { 'type': unicode, 'key': 'category' }, { 'type': unicode, 'key': 'key' }, { 'type': unicode, 'key': 'date' }, { 'type': unicode, 'key': 'user' }, { 'type': unicode, 'key': 'description' }] ref_requirements = [af for af in helper.readArtefactList(coltypes)] helper.treeview.Select((0, 3)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit requirements'] for i in range(5): editwin.panelListView.Select(i) editwin.panelListView.TypeKeys('{SPACE}') editwin['Key:ComboBox'].Select(1) editwin['Priority:ComboBox'].Select(2) editwin['Status:ComboBox'].Select(1) editwin['Complexity:ComboBox'].Select(3) editwin['Assigned:Edit'].SetText('Poor boy') editwin['Effort:ComboBox'].Select(2) editwin['Category:ComboBox'].Select(5) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.TypeKeys('^+a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 3)) act_requirements = [af for af in helper.readArtefactList(coltypes)] for i in range(5): act = act_requirements[i] ref = ref_requirements[i] self.assertEqual(act['id'], ref['id']) self.assertEqual(act['title'], ref['title']) self.assertEqual(act['priority'], 'Expected') self.assertEqual(act['status'], 'Submitted') self.assertEqual(act['complexity'], 'High') self.assertEqual(act['assigned'], 'Poor boy') self.assertEqual(act['effort'], 'Weeks') self.assertEqual(act['category'], 'Security') self.assertEqual(act['key'], ref_requirements[0]['key']) self.assertNotEqual(act['date'], ref['date']) self.assertEqual(act['description'], ref['description']) for i in range(5, 17): act = act_requirements[i] ref = ref_requirements[i] self.assertEqual(act['id'], ref['id']) self.assertEqual(act['title'], ref['title']) self.assertEqual(act['priority'], ref['priority']) self.assertEqual(act['status'], ref['status']) self.assertEqual(act['complexity'], ref['complexity']) self.assertEqual(act['assigned'], ref['assigned']) self.assertEqual(act['effort'], ref['effort']) self.assertEqual(act['category'], ref['category']) self.assertEqual(act['key'], ref['key']) self.assertEqual(act['date'], ref['date']) self.assertEqual(act['user'], ref['user']) self.assertEqual(act['description'], ref['description']) # check tags for only one certain requirement helper.treeview.Select((0, 3, 1)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(6 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 0) p.TypeKeys(2 * '^{TAB}') # and once again ref_requirements = act_requirements helper.treeview.Select((0, 3)) helper.treeview.TypeKeys('{ENTER}') editwin = helper.app['Edit requirements'] editwin.panelListView.TypeKeys('^a') editwin['Key:ComboBox'].Select(0) editwin['Priority:ComboBox'].Select(0) editwin['Status:ComboBox'].Select(1) editwin['Complexity:ComboBox'].Select(0) editwin['Assigned:Edit'].SetText('Another poor boy') editwin['Effort:ComboBox'].Select(0) editwin['Category:ComboBox'].Select(0) p = editwin['Title:Edit'].Parent().Parent() p.TypeKeys('^{TAB}') editwin.leftwinListView.TypeKeys('^a') editwin['Save && Close'].Click() timing.WaitUntil(10, 1, helper.afeditor.MenuItem('New').IsEnabled) helper.treeview.Select((0, 3)) act_requirements = [af for af in helper.readArtefactList(coltypes)] for i in range(len(act_requirements)): act = act_requirements[i] ref = ref_requirements[i] self.assertEqual(act['id'], ref['id']) self.assertEqual(act['title'], ref['title']) self.assertEqual(act['priority'], ref['priority']) self.assertEqual(act['status'], 'Submitted') self.assertEqual(act['complexity'], ref['complexity']) self.assertEqual(act['assigned'], 'Another poor boy') self.assertEqual(act['effort'], ref['effort']) self.assertEqual(act['category'], ref['category']) self.assertEqual(act['key'], ref['key']) self.assertEqual(act['description'], ref['description']) # check tags for only one certain requirement helper.treeview.Select((0, 3, 10)) p = helper.afeditorwin['Title:Edit'].Parent().Parent() p.TypeKeys(6 * '^{TAB}') nitems = helper.afeditorwin.leftwinListView.ItemCount() self.assertEqual(nitems, 20) p.TypeKeys(2 * '^+{TAB}')