diff options
-rw-r--r-- | bitbake/lib/toaster/tests/functional/test_functional_basic.py | 108 |
1 files changed, 59 insertions, 49 deletions
diff --git a/bitbake/lib/toaster/tests/functional/test_functional_basic.py b/bitbake/lib/toaster/tests/functional/test_functional_basic.py index e2d1c7dd86..a95ce4862c 100644 --- a/bitbake/lib/toaster/tests/functional/test_functional_basic.py +++ b/bitbake/lib/toaster/tests/functional/test_functional_basic.py | |||
@@ -40,44 +40,44 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
40 | try: | 40 | try: |
41 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'customimages/"'+"]").click() | 41 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'customimages/"'+"]").click() |
42 | self.wait_until_present('#config-nav', poll=10) | 42 | self.wait_until_present('#config-nav', poll=10) |
43 | self.assertTrue(re.search("Custom images",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'Custom images information is not loading properly') | ||
44 | except: | 43 | except: |
45 | self.fail(msg='No Custom images tab available') | 44 | self.fail(msg='No Custom images tab available') |
45 | self.assertTrue(re.search("Custom images",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'Custom images information is not loading properly') | ||
46 | 46 | ||
47 | try: | 47 | try: |
48 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'images/"'+"]").click() | 48 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'images/"'+"]").click() |
49 | self.wait_until_present('#config-nav', poll=10) | 49 | self.wait_until_present('#config-nav', poll=10) |
50 | self.assertTrue(re.search("Compatible image recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible image recipes information is not loading properly') | ||
51 | except: | 50 | except: |
52 | self.fail(msg='No Compatible image tab available') | 51 | self.fail(msg='No Compatible image tab available') |
52 | self.assertTrue(re.search("Compatible image recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible image recipes information is not loading properly') | ||
53 | 53 | ||
54 | try: | 54 | try: |
55 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'softwarerecipes/"'+"]").click() | 55 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'softwarerecipes/"'+"]").click() |
56 | self.wait_until_present('#config-nav', poll=10) | 56 | self.wait_until_present('#config-nav', poll=10) |
57 | self.assertTrue(re.search("Compatible software recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible software recipe information is not loading properly') | ||
58 | except: | 57 | except: |
59 | self.fail(msg='No Compatible software recipe tab available') | 58 | self.fail(msg='No Compatible software recipe tab available') |
59 | self.assertTrue(re.search("Compatible software recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible software recipe information is not loading properly') | ||
60 | 60 | ||
61 | try: | 61 | try: |
62 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'machines/"'+"]").click() | 62 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'machines/"'+"]").click() |
63 | self.wait_until_present('#config-nav', poll=10) | 63 | self.wait_until_present('#config-nav', poll=10) |
64 | self.assertTrue(re.search("Compatible machines",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible machine information is not loading properly') | ||
65 | except: | 64 | except: |
66 | self.fail(msg='No Compatible machines tab available') | 65 | self.fail(msg='No Compatible machines tab available') |
66 | self.assertTrue(re.search("Compatible machines",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible machine information is not loading properly') | ||
67 | 67 | ||
68 | try: | 68 | try: |
69 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'layers/"'+"]").click() | 69 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'layers/"'+"]").click() |
70 | self.wait_until_present('#config-nav', poll=10) | 70 | self.wait_until_present('#config-nav', poll=10) |
71 | self.assertTrue(re.search("Compatible layers",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible layer information is not loading properly') | ||
72 | except: | 71 | except: |
73 | self.fail(msg='No Compatible layers tab available') | 72 | self.fail(msg='No Compatible layers tab available') |
73 | self.assertTrue(re.search("Compatible layers",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Compatible layer information is not loading properly') | ||
74 | 74 | ||
75 | try: | 75 | try: |
76 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'configuration"'+"]").click() | 76 | self.driver.find_element(By.XPATH, "//*[@id='config-nav']/ul/li/a[@href="+'"'+project_URL+'configuration"'+"]").click() |
77 | self.wait_until_present('#config-nav', poll=10) | 77 | self.wait_until_present('#config-nav', poll=10) |
78 | self.assertTrue(re.search("Bitbake variables",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Bitbake variables information is not loading properly') | ||
79 | except: | 78 | except: |
80 | self.fail(msg='No Bitbake variables tab available') | 79 | self.fail(msg='No Bitbake variables tab available') |
80 | self.assertTrue(re.search("Bitbake variables",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Bitbake variables information is not loading properly') | ||
81 | 81 | ||
82 | # testcase (1516) | 82 | # testcase (1516) |
83 | def test_review_configuration_information(self): | 83 | def test_review_configuration_information(self): |
@@ -86,9 +86,11 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
86 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() | 86 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() |
87 | project_URL=self.get_URL() | 87 | project_URL=self.get_URL() |
88 | self.wait_until_present('#config-nav', poll=10) | 88 | self.wait_until_present('#config-nav', poll=10) |
89 | |||
90 | # Machine section of page | ||
91 | self.assertTrue(self.element_exists('#machine-section'),'Machine section for the project configuration page does not exist') | ||
92 | self.assertTrue(re.search("qemux86-64",self.driver.find_element(By.XPATH, "//span[@id='project-machine-name']").text),'The machine type is not assigned') | ||
89 | try: | 93 | try: |
90 | self.assertTrue(self.element_exists('#machine-section'),'Machine section for the project configuration page does not exist') | ||
91 | self.assertTrue(re.search("qemux86-64",self.driver.find_element(By.XPATH, "//span[@id='project-machine-name']").text),'The machine type is not assigned') | ||
92 | self.driver.find_element(By.XPATH, "//span[@id='change-machine-toggle']").click() | 94 | self.driver.find_element(By.XPATH, "//span[@id='change-machine-toggle']").click() |
93 | self.wait_until_visible('#select-machine-form', poll=10) | 95 | self.wait_until_visible('#select-machine-form', poll=10) |
94 | self.wait_until_visible('#cancel-machine-change', poll=10) | 96 | self.wait_until_visible('#cancel-machine-change', poll=10) |
@@ -96,33 +98,34 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
96 | except: | 98 | except: |
97 | self.fail(msg='The machine information is wrong in the configuration page') | 99 | self.fail(msg='The machine information is wrong in the configuration page') |
98 | 100 | ||
101 | # Most built recipes section | ||
99 | try: | 102 | try: |
100 | self.driver.find_element(By.ID, 'no-most-built') | 103 | self.driver.find_element(By.ID, 'no-most-built') |
101 | except: | 104 | except: |
102 | self.fail(msg='No Most built information in project detail page') | 105 | self.fail(msg='No Most built information in project detail page') |
103 | 106 | ||
104 | try: | 107 | # Project Release title |
105 | self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.XPATH, "//span[@id='project-release-title']").text),'The project release is not defined') | 108 | self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.XPATH, "//span[@id='project-release-title']").text), 'The project release is not defined in the project detail page') |
106 | except: | ||
107 | self.fail(msg='No project release title information in project detail page') | ||
108 | 109 | ||
110 | # List of layers in project | ||
111 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']") | ||
112 | self.assertTrue(re.search("3",self.driver.find_element(By.ID, "project-layers-count").text),'There should be 3 layers listed in the layer count') | ||
109 | try: | 113 | try: |
110 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']") | ||
111 | self.assertTrue(re.search("3",self.driver.find_element(By.ID, "project-layers-count").text),'There should be 3 layers listed in the layer count') | ||
112 | layer_list = self.driver.find_element(By.ID, "layers-in-project-list") | 114 | layer_list = self.driver.find_element(By.ID, "layers-in-project-list") |
113 | layers = layer_list.find_elements(By.TAG_NAME, "li") | 115 | layers = layer_list.find_elements(By.TAG_NAME, "li") |
114 | for layer in layers: | ||
115 | if re.match ("openembedded-core",layer.text): | ||
116 | print ("openembedded-core layer is a default layer in the project configuration") | ||
117 | elif re.match ("meta-poky",layer.text): | ||
118 | print ("meta-poky layer is a default layer in the project configuration") | ||
119 | elif re.match ("meta-yocto-bsp",layer.text): | ||
120 | print ("meta-yocto-bsp is a default layer in the project configuratoin") | ||
121 | else: | ||
122 | self.fail(msg='default layers are missing from the project configuration') | ||
123 | except: | 116 | except: |
124 | self.fail(msg='No Layer information in project detail page') | 117 | self.fail(msg='No Layer information in project detail page') |
125 | 118 | ||
119 | for layer in layers: | ||
120 | if re.match ("openembedded-core", layer.text): | ||
121 | print ("openembedded-core layer is a default layer in the project configuration") | ||
122 | elif re.match ("meta-poky", layer.text): | ||
123 | print ("meta-poky layer is a default layer in the project configuration") | ||
124 | elif re.match ("meta-yocto-bsp", layer.text): | ||
125 | print ("meta-yocto-bsp is a default layer in the project configuratoin") | ||
126 | else: | ||
127 | self.fail(msg='default layers are missing from the project configuration') | ||
128 | |||
126 | # testcase (1517) | 129 | # testcase (1517) |
127 | def test_verify_machine_information(self): | 130 | def test_verify_machine_information(self): |
128 | self.get(reverse('all-projects')) | 131 | self.get(reverse('all-projects')) |
@@ -130,9 +133,9 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
130 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() | 133 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() |
131 | self.wait_until_present('#config-nav', poll=10) | 134 | self.wait_until_present('#config-nav', poll=10) |
132 | 135 | ||
136 | self.assertTrue(self.element_exists('#machine-section'),'Machine section for the project configuration page does not exist') | ||
137 | self.assertTrue(re.search("qemux86-64",self.driver.find_element(By.ID, "project-machine-name").text),'The machine type is not assigned') | ||
133 | try: | 138 | try: |
134 | self.assertTrue(self.element_exists('#machine-section'),'Machine section for the project configuration page does not exist') | ||
135 | self.assertTrue(re.search("qemux86-64",self.driver.find_element(By.ID, "project-machine-name").text),'The machine type is not assigned') | ||
136 | self.driver.find_element(By.ID, "change-machine-toggle").click() | 139 | self.driver.find_element(By.ID, "change-machine-toggle").click() |
137 | self.wait_until_visible('#select-machine-form', poll=10) | 140 | self.wait_until_visible('#select-machine-form', poll=10) |
138 | self.wait_until_visible('#cancel-machine-change', poll=10) | 141 | self.wait_until_visible('#cancel-machine-change', poll=10) |
@@ -147,13 +150,13 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
147 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() | 150 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() |
148 | self.wait_until_present('#config-nav', poll=10) | 151 | self.wait_until_present('#config-nav', poll=10) |
149 | project_URL=self.get_URL() | 152 | project_URL=self.get_URL() |
153 | self.assertTrue(re.search("You haven't built any recipes yet",self.driver.find_element(By.ID, "no-most-built").text),'Default message of no builds is not present') | ||
150 | try: | 154 | try: |
151 | self.assertTrue(re.search("You haven't built any recipes yet",self.driver.find_element(By.ID, "no-most-built").text),'Default message of no builds is not present') | ||
152 | self.driver.find_element(By.XPATH, "//div[@id='no-most-built']/p/a[@href="+'"'+project_URL+'images/"'+"]").click() | 155 | self.driver.find_element(By.XPATH, "//div[@id='no-most-built']/p/a[@href="+'"'+project_URL+'images/"'+"]").click() |
153 | self.wait_until_present('#config-nav', poll=10) | ||
154 | self.assertTrue(re.search("Compatible image recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Choose a recipe to build link is not working properly') | ||
155 | except: | 156 | except: |
156 | self.fail(msg='No Most built information in project detail page') | 157 | self.fail(msg='No Most built information in project detail page') |
158 | self.wait_until_present('#config-nav', poll=10) | ||
159 | self.assertTrue(re.search("Compatible image recipes",self.driver.find_element(By.XPATH, "//div[@class='col-md-10']").text),'The Choose a recipe to build link is not working properly') | ||
157 | 160 | ||
158 | # testcase (1519) | 161 | # testcase (1519) |
159 | def test_verify_project_release_information(self): | 162 | def test_verify_project_release_information(self): |
@@ -161,11 +164,7 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
161 | self.wait_until_present('#projectstable', poll=10) | 164 | self.wait_until_present('#projectstable', poll=10) |
162 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() | 165 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() |
163 | self.wait_until_present('#config-nav', poll=10) | 166 | self.wait_until_present('#config-nav', poll=10) |
164 | 167 | self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.ID, "project-release-title").text), 'No project release title information in project detail page') | |
165 | try: | ||
166 | self.assertTrue(re.search("Yocto Project master",self.driver.find_element(By.ID, "project-release-title").text),'The project release is not defined') | ||
167 | except: | ||
168 | self.fail(msg='No project release title information in project detail page') | ||
169 | 168 | ||
170 | # testcase (1520) | 169 | # testcase (1520) |
171 | def test_verify_layer_information(self): | 170 | def test_verify_layer_information(self): |
@@ -174,28 +173,32 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
174 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() | 173 | self.find_element_by_link_text_in_table('projectstable', 'selenium-project').click() |
175 | self.wait_until_present('#config-nav', poll=10) | 174 | self.wait_until_present('#config-nav', poll=10) |
176 | project_URL=self.get_URL() | 175 | project_URL=self.get_URL() |
176 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']") | ||
177 | self.assertTrue(re.search("3",self.driver.find_element(By.ID, "project-layers-count").text),'There should be 3 layers listed in the layer count') | ||
178 | |||
177 | try: | 179 | try: |
178 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']") | ||
179 | self.assertTrue(re.search("3",self.driver.find_element(By.ID, "project-layers-count").text),'There should be 3 layers listed in the layer count') | ||
180 | layer_list = self.driver.find_element(By.ID, "layers-in-project-list") | 180 | layer_list = self.driver.find_element(By.ID, "layers-in-project-list") |
181 | layers = layer_list.find_elements(By.TAG_NAME, "li") | 181 | layers = layer_list.find_elements(By.TAG_NAME, "li") |
182 | except: | ||
183 | self.fail(msg='No Layer information in project detail page') | ||
182 | 184 | ||
183 | for layer in layers: | 185 | for layer in layers: |
184 | if re.match ("openembedded-core",layer.text): | 186 | if re.match ("openembedded-core",layer.text): |
185 | print ("openembedded-core layer is a default layer in the project configuration") | 187 | print ("openembedded-core layer is a default layer in the project configuration") |
186 | elif re.match ("meta-poky",layer.text): | 188 | elif re.match ("meta-poky",layer.text): |
187 | print ("meta-poky layer is a default layer in the project configuration") | 189 | print ("meta-poky layer is a default layer in the project configuration") |
188 | elif re.match ("meta-yocto-bsp",layer.text): | 190 | elif re.match ("meta-yocto-bsp",layer.text): |
189 | print ("meta-yocto-bsp is a default layer in the project configuratoin") | 191 | print ("meta-yocto-bsp is a default layer in the project configuratoin") |
190 | else: | 192 | else: |
191 | self.fail(msg='default layers are missing from the project configuration') | 193 | self.fail(msg='default layers are missing from the project configuration') |
192 | 194 | ||
195 | try: | ||
193 | self.driver.find_element(By.XPATH, "//input[@id='layer-add-input']") | 196 | self.driver.find_element(By.XPATH, "//input[@id='layer-add-input']") |
194 | self.driver.find_element(By.XPATH, "//button[@id='add-layer-btn']") | 197 | self.driver.find_element(By.XPATH, "//button[@id='add-layer-btn']") |
195 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']/form[@class='form-inline']/p/a[@id='view-compatible-layers']") | 198 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']/form[@class='form-inline']/p/a[@id='view-compatible-layers']") |
196 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']/form[@class='form-inline']/p/a[@href="+'"'+project_URL+'importlayer"'+"]") | 199 | self.driver.find_element(By.XPATH, "//div[@id='layer-container']/form[@class='form-inline']/p/a[@href="+'"'+project_URL+'importlayer"'+"]") |
197 | except: | 200 | except: |
198 | self.fail(msg='No Layer information in project detail page') | 201 | self.fail(msg='Layer configuration controls missing') |
199 | 202 | ||
200 | # testcase (1521) | 203 | # testcase (1521) |
201 | def test_verify_project_detail_links(self): | 204 | def test_verify_project_detail_links(self): |
@@ -211,7 +214,11 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
211 | try: | 214 | try: |
212 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'builds/"'+"]").click() | 215 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'builds/"'+"]").click() |
213 | self.wait_until_visible('#project-topbar', poll=10) | 216 | self.wait_until_visible('#project-topbar', poll=10) |
214 | self.assertTrue(re.search("Builds",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'builds/"'+"]").text), 'Builds tab in project topbar is misspelled') | 217 | except: |
218 | self.fail(msg='Builds tab information is not present') | ||
219 | |||
220 | self.assertTrue(re.search("Builds",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'builds/"'+"]").text), 'Builds tab in project topbar is misspelled') | ||
221 | try: | ||
215 | self.driver.find_element(By.XPATH, "//div[@id='empty-state-projectbuildstable']") | 222 | self.driver.find_element(By.XPATH, "//div[@id='empty-state-projectbuildstable']") |
216 | except: | 223 | except: |
217 | self.fail(msg='Builds tab information is not present') | 224 | self.fail(msg='Builds tab information is not present') |
@@ -219,7 +226,10 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
219 | try: | 226 | try: |
220 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'importlayer"'+"]").click() | 227 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'importlayer"'+"]").click() |
221 | self.wait_until_visible('#project-topbar', poll=10) | 228 | self.wait_until_visible('#project-topbar', poll=10) |
222 | self.assertTrue(re.search("Import layer",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'importlayer"'+"]").text), 'Import layer tab in project topbar is misspelled') | 229 | except: |
230 | self.fail(msg='Import layer tab not loading properly') | ||
231 | self.assertTrue(re.search("Import layer",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'importlayer"'+"]").text), 'Import layer tab in project topbar is misspelled') | ||
232 | try: | ||
223 | self.driver.find_element(By.XPATH, "//fieldset[@id='repo-select']") | 233 | self.driver.find_element(By.XPATH, "//fieldset[@id='repo-select']") |
224 | self.driver.find_element(By.XPATH, "//fieldset[@id='git-repo']") | 234 | self.driver.find_element(By.XPATH, "//fieldset[@id='git-repo']") |
225 | except: | 235 | except: |
@@ -228,10 +238,10 @@ class FuntionalTestBasic(SeleniumFunctionalTestCase): | |||
228 | try: | 238 | try: |
229 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'newcustomimage/"'+"]").click() | 239 | self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'newcustomimage/"'+"]").click() |
230 | self.wait_until_visible('#project-topbar', poll=10) | 240 | self.wait_until_visible('#project-topbar', poll=10) |
231 | self.assertTrue(re.search("New custom image",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'newcustomimage/"'+"]").text), 'New custom image tab in project topbar is misspelled') | ||
232 | self.assertTrue(re.search("Select the image recipe you want to customise",self.driver.find_element(By.XPATH, "//div[@class='col-md-12']/h2").text),'The new custom image tab is not loading correctly') | ||
233 | except: | 241 | except: |
234 | self.fail(msg='New custom image tab not loading properly') | 242 | self.fail(msg='New custom image tab not loading properly') |
243 | self.assertTrue(re.search("New custom image",self.driver.find_element(By.XPATH, "//div[@id='project-topbar']/ul[@class='nav nav-tabs']/li/a[@href="+'"'+project_URL+'newcustomimage/"'+"]").text), 'New custom image tab in project topbar is misspelled') | ||
244 | self.assertTrue(re.search("Select the image recipe you want to customise",self.driver.find_element(By.XPATH, "//div[@class='col-md-12']/h2").text),'The new custom image tab is not loading correctly') | ||
235 | 245 | ||
236 | 246 | ||
237 | 247 | ||