Advertisement
iramirez

Untitled

Nov 15th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.75 KB | None | 0 0
  1. import importer
  2. import unittest
  3. import xmlrunner
  4. from lib import q2_library, modal_page
  5. from pages.ngam import main_page, login_page
  6. from pages.ngam.commercial.payments import payments
  7. from pages.ngam.transactions import activity_center_page
  8.  
  9.  
  10. class TSTR_1947_dualactionzerolimit_ach_batch_approve(unittest.TestCase):
  11. driver = None
  12. util = None
  13. ENV = 'CI'
  14. BROWSER = 'CHROME_MAC'
  15.  
  16. @classmethod
  17. def setUpClass(cls):
  18. cls.util = q2_library.Utilities()
  19. cls.util.load_config(cls)
  20. cls.input = cls.util.read_data_file('payments/tstr_1947_data.json')
  21. cls.driver = cls.util.get_browser(5)
  22. cls.url = cls.util.get_config("base_url")
  23. cls.user = cls.util.get_credentials('dual_action_user')
  24. cls.password = cls.util.get_credentials('password_ma')
  25. cls.user2 = cls.util.get_credentials('dual_actionfx_user')
  26. cls.current_page = None
  27. cls.tracking_id = None
  28.  
  29. def test_01_login_successful(self):
  30. """Login the app"""
  31. self.driver.get(self.url)
  32. self.driver.maximize_window()
  33. login = login_page.LoginPage(self.driver)
  34. login.enter_username(self.user)
  35. login.enter_password(self.password)
  36. self.main_page = login.click_submit_button()
  37. msg = self.main_page.validate_welcome_msg()
  38. self.assertIn('Welcome back', msg, "Login was successful")
  39.  
  40. def test_02_payments(self):
  41. """Going to payments menu page"""
  42. self.menu = main_page.Menu(self.driver)
  43. self.menu.open_menu_item(self.input['commercial_menu'])
  44. self.payment_page = self.menu.open_menu_child_item(self.input['payments_menu'])
  45. self.payment_page.wait_for_page_to_load()
  46. self.__class__.current_page = self.payment_page
  47. self.assertTrue(self.payment_page.is_page_loaded(), "Checking that the Payments Page got loaded")
  48.  
  49. def test_03_ach_batch_template(self):
  50. """Setting the template"""
  51. self.payment_page = payments.PaymentsPage(self.driver)
  52. self.payment_page.click_new_payment_drop_down()
  53. recipient_and_amount_page = self.payment_page.click_new_payment_dropdown_val(self.input['template_type'])
  54. recipient_and_amount_page.wait_for_page_to_load()
  55. self.__class__.current_page = recipient_and_amount_page
  56. self.assertTrue(recipient_and_amount_page.is_page_loaded(), "Checking that the Info and Users tab got loaded")
  57.  
  58. def test_04_recipient_amount_tab(self):
  59. """Going to Subsidiary Tab"""
  60. recipient_amount_tab = self.current_page
  61. recipient_amount_tab.select_list_view()
  62. recipient_amount_tab.choose_recipient(self.input["recipient1"])
  63. recipient_amount_tab.wait_for_amount_and_addendum_fields()
  64. recipient_amount_tab.enter_amount(self.input["recipient1"], self.input["amount1"])
  65. recipient_amount_tab.enter_addendum(self.input["recipient1"], self.input["addendum1"])
  66. recipient_amount_tab.choose_recipient(self.input["recipient2"])
  67. recipient_amount_tab.wait_for_amount_and_addendum_fields()
  68. recipient_amount_tab.enter_amount(self.input["recipient2"], self.input["amount2"])
  69. recipient_amount_tab.enter_addendum(self.input["recipient2"], self.input["addendum2"])
  70. subsidiary_tab = recipient_amount_tab.click_next_button()
  71. self.__class__.current_page = subsidiary_tab
  72. self.assertTrue(subsidiary_tab.is_page_loaded(), "Checking that the Subsidiary tab got loaded")
  73.  
  74. def test_05_go_subsidiary_tab(self):
  75. """Going to Account tab"""
  76. subsidiary_tab = self.current_page
  77. account_tab = subsidiary_tab.click_next_button()
  78. self.__class__.current_page = account_tab
  79. self.assertTrue(account_tab.is_page_loaded(), "Checking that the Account tab got loaded")
  80.  
  81. def test_06_go_accounts_tab(self):
  82. """Going to Review and submit tab """
  83. account_tab = self.current_page
  84. account_tab.choose_from_account(self.input["account"])
  85. account_tab.scroll_the_page(x=0, y=-1)
  86. review_submit_tab = account_tab.click_next_button()
  87. self.__class__.current_page = review_submit_tab
  88. self.assertTrue(review_submit_tab.is_page_loaded(), "Checking that the Review & Submit tab got loaded")
  89.  
  90. def test_07_go_review_submit_tab(self):
  91. """Submitting transaction """
  92. review_submit_tab = self.current_page
  93. review_submit_tab.select_date()
  94. review_submit_tab.page.scroll_the_page(x=0, y=-50)
  95. is_alert_present = review_submit_tab.is_error_message_present('You cannot approve this transaction: Action required by other user')
  96. review_submit_tab.page.scroll_the_page(x=0, y=300)
  97. is_draft_disabled = review_submit_tab.is_draft_enabled()
  98. is_approve_disabled = not review_submit_tab.is_approve_enabled()
  99. is_ach_class_code_correct = review_submit_tab.get_ach_class_code_in_overview() == self.input[
  100. "ach_class_code_in_overview"]
  101. is_total_amount_correct = review_submit_tab.get_total_amt_in_overview() == self.input[
  102. "total_amount_in_overview"]
  103. is_send_payment_as_correct = review_submit_tab.get_send_payment_as_str() == self.input["subsidiary"]
  104. is_from_account_correct = self.input[
  105. "from_account_in_overview"] in review_submit_tab.get_txt_frm_acc_overview()
  106. is_recipient1_correct = review_submit_tab.get_rec_display_name(1) == self.input["recipient1"]
  107. is_recipient2_correct = review_submit_tab.get_rec_display_name(2) == self.input["recipient2"]
  108. self.assertTrue(
  109. is_alert_present and is_draft_disabled and is_approve_disabled and is_ach_class_code_correct and is_total_amount_correct and is_send_payment_as_correct and
  110. is_from_account_correct and is_recipient1_correct and is_recipient2_correct,
  111. "Checking that overview information is correct")
  112.  
  113. def test_08_draft_review_tab(self):
  114. """Click on draft button"""
  115. review_submit_tab = self.current_page
  116. review_submit_tab.page.scroll_the_page(x=1, y=-1)
  117. draft_modal_page = review_submit_tab.click_draft()
  118. self.__class__.current_page = draft_modal_page
  119. draft_ach_color = draft_modal_page.get_modal_color() == self.input["ach_batch_color"]
  120. draft_ach_message = draft_modal_page.get_modal_text() == self.input[
  121. "ach_batch_message"]
  122. self.__class__.tracking_id = draft_modal_page.get_ach_draft_modal_data("Tracking ID").split("Tracking ID: #", 1)[1]
  123. draft_modal_page.go_to_activity_center()
  124. self.assertTrue(draft_ach_color and draft_ach_message, "Check if one of the previous validations are false")
  125.  
  126. def test_09_go_to_activity_center(self):
  127. """Going to Activity Center Page"""
  128. self.__class__.current_page = activity_center_page.ActivityCenterPage(self.driver)
  129. activity_center_p = self.current_page
  130. activity_center_p.wait_for_page_to_load()
  131. self.assertTrue(activity_center_p.is_activity_center_page_loaded())
  132.  
  133. def test_10_check_transaction(self):
  134. """Checking the transaction information """
  135. activity_center_p = self.current_page
  136. header_status = activity_center_p.return_header_status() == self.input["header_status"]
  137. approval_header = activity_center_p.return_header_approvals() == self.input["header_approvals"]
  138. approval_dropdown_element = not activity_center_p.is_actions_menu_item_present(self.input["dropdown_action"])
  139. step_state = str(activity_center_p.get_trans_fld_data(self.input["trans_approve_fld"], "1.")).split(".")[1] == self.input["trans_draft_fld"]
  140. self.assertTrue(header_status and approval_header and approval_dropdown_element and step_state,
  141. "Check if one or more validations are correct")
  142.  
  143. def test_11_log_off(self):
  144. """Logging off the app"""
  145. self.menu = main_page.Menu(self.driver)
  146. self.menu.open_menu_item('Log Off')
  147. self.__class__.current_page = login_page.LoginPage(self.driver)
  148. self.current_page.wait_for_page_to_load()
  149. self.assertTrue(self.current_page.is_login_page_loaded(), "Checking that the user logged off correctly")
  150.  
  151. def test_12_login_successful(self):
  152. """Login into the app"""
  153. self.current_page.enter_username(self.user2)
  154. self.current_page.enter_password(self.password)
  155. self.__class__.current_page = self.current_page.click_submit_button()
  156. msg = self.current_page.validate_welcome_msg()
  157. self.assertIn('Welcome back', msg, "Login was successful")
  158.  
  159. def test_13_go_to_activity_center(self):
  160. """Going to Activity Center Page"""
  161. self.menu = main_page.Menu(self.driver)
  162. self.menu.open_menu_item(self.input['transaction_menu'])
  163. self.activity_center_page = self.menu.open_menu_child_item(self.input['activity_center'])
  164. self.activity_center_page.wait_for_page_to_load()
  165. self.assertTrue(self.activity_center_page.is_page_loaded(), "Checking that the Activity Center page got loaded")
  166.  
  167. def test_14_check_transaction(self):
  168. """Checking the transaction information """
  169. self.__class__.current_page = activity_center_page.ActivityCenterPage(self.driver)
  170. activity_center_p = self.current_page
  171. activity_center_p.filter_by_trans_id(self.tracking_id)
  172. activity_center_p.select_transaction_type_from_dropdown(self.input["transaction_type"])
  173. activity_center_p.click_column_to_display(self.input["checkbox_filter_option"])
  174. activity_center_p.click_apply_filter()
  175. activity_center_p.expand_transaction()
  176. header_status = activity_center_p.return_header_status() == self.input["header_status"]
  177. approval_header = activity_center_p.return_header_approvals() == self.input["header_approvals"]
  178. is_approval_option_present = activity_center_p.is_actions_menu_item_present(self.input["dropdown_action"])
  179. step_state = str(activity_center_p.get_trans_fld_data(self.input["trans_approve_fld"], "1.")).split(".")[1] == \
  180. self.input["trans_draft_fld"]
  181. self.assertTrue(header_status and approval_header and is_approval_option_present and step_state,
  182. "Check for some of the previous validations to ensure those are True")
  183.  
  184. def test_15_approve_transaction(self):
  185. """Approving the transaction"""
  186. activity_center_p = self.current_page
  187. activity_center_p.scroll_the_page(x=0, y=100)
  188. activity_center_p.click_actions_menu_item(self.input["dropdown_action"])
  189. activity_center_p.click_confirm()
  190.  
  191. approve_modal_page = modal_page.ModalPage(self.driver)
  192. approve_draft_color = approve_modal_page.return_title_color() == self.input["ach_approval_color"]
  193. approve_modal_page.click_close_modal()
  194. self.assertTrue(approve_draft_color, "The Title color is not green for the Approval Modal")
  195.  
  196. def test_16_go_to_activity_center(self):
  197. """Going to Activity Center Page"""
  198. activity_center_p = self.current_page
  199. header_status = activity_center_p.return_header_status() == self.input["header_status_auth"]
  200. approval_header = activity_center_p.return_header_approvals() == self.input["header_approvals_auth"]
  201. activity_center_p.scroll_the_page(x=0, y=100)
  202. approval_dropdown_element = activity_center_p.is_actions_menu_item_present(self.input["dropdown_action"])
  203. step_state = str(activity_center_p.get_trans_fld_data(self.input["trans_approve_fld"], "1.")).split("\n")[1] == self.input["trans_draft_fld_auth"]
  204. self.assertTrue(header_status and approval_header and approval_dropdown_element == False and step_state,
  205. "Check if one or more validations are correct")
  206.  
  207. def test_17_log_off(self):
  208. """Logging off the app"""
  209. self.menu = main_page.Menu(self.driver)
  210. self.menu.open_menu_item('Log Off')
  211. self.__class__.current_page = login_page.LoginPage(self.driver)
  212. self.current_page.wait_for_page_to_load()
  213. self.assertTrue(self.current_page.is_login_page_loaded(), "Checking that the user logged off correctly")
  214.  
  215. def setUp(self):
  216. self.util.set_up(self)
  217.  
  218. def tearDown(self):
  219. self.util.tear_down(self)
  220.  
  221. @classmethod
  222. def tearDownClass(cls):
  223. cls.util.close_the_browser(cls.driver)
  224.  
  225. if __name__ == '__main__':
  226. q2_library.Utilities().set_parameters_to_this(TSTR_1947_dualactionzerolimit_ach_batch_approve)
  227. with open('test-reports/TSTR_1947_dualactionzerolimit_ach_batch_approve.xml', 'wb') as output:
  228. unittest.main(testRunner=xmlrunner.XMLTestRunner(output=output, verbosity=2),
  229. failfast=False, buffer=False, catchbreak=False)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement