def test_C10_CheckTransportDetailsThenEdit(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no # Setup - edit transport_name_edited = StringMethods.get_unique_name( 'transport_name_edited_') weight_edited = StringMethods.get_unique_number() shipping_edited = CheckOneBox.yes self.addCleanup(self.transports_page.remove_entry, transport_name_edited) # Action self.transports_page.add_entry(transport_name, weight, shipping) transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name) transport_row.details_row_item.click() check_dialog = TransportsCheckDialog(self.driver) check_dialog.edit_entry(transport_name_edited, weight_edited, shipping_edited) # Assert transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name_edited) self.assertIsNotNone(transport_row) self.assertEqual(transport_name_edited, transport_row[HeadersTransports.Name]) self.assertEqual(weight_edited + ' kg', transport_row[HeadersTransports.Weight])
def test_C3_CheckTransportEdited(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no # Setup - edit transport_name_edited = StringMethods.get_unique_name( 'transport_name_edited_') weight_edited = StringMethods.get_unique_number() shipping_edited = CheckOneBox.yes self.addCleanup(self.transports_page.remove_entry, transport_name_edited) # Action self.transports_page.add_entry(transport_name, weight, shipping) transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name) self.transports_page.edit_entry(transport_name_edited, weight_edited, shipping_edited) # Assert self.transports_page.wait() transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name_edited) self.assertIsNotNone(transport_row) self.assertEqual(transport_name_edited, transport_row[HeadersTransports.Name]) self.assertEqual(weight_edited + ' kg', transport_row[HeadersTransports.Weight])
def test_C65_CheckProductDetailsThenEdit(self): # Setup product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole # Setup - edit product_name_edited = StringMethods.get_unique_name('product_name_') display_edited = StringMethods.get_unique_name('pn_') sage_edited = StringMethods.get_unique_digit() default_cut_edited = DefaultCut.whole self.addCleanup(self.products_page.remove_entry, product_name_edited) # Action self.products_page.add_entry(product_name, display, sage, default_cut) products_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) products_row.details_row_item.click() check_dialog = ProductsCheckDialog(self.driver) check_dialog.edit_entry(product_name_edited, display_edited, sage_edited, default_cut_edited) # Assert products_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name_edited) self.assertIsNotNone(products_row) self.assertEqual(product_name_edited, products_row[HeadersProducts.Name])
def setUp(self): super(SmokeTestStocks, self).setUp() self.all_page = StocksAllPage(self.driver) self.market_name = StringMethods.get_unique_name('market_name_') self.number_of_doors = StringMethods.get_unique_number() self.category_name = StringMethods.get_unique_name('category_name_')
def test_C130_CheckNoDuplicateEntriesAllowed(self): # fails because duplication is allowed # Setup product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole expected_error = 'Duplicate entries are not allowed.' # Action self.products_page.add_entry(product_name, display, sage, default_cut) confirmation_dialog = ConfirmationMessageDialog(self.driver) confirmation_dialog.ok_button.click() PrintMessage('Product created.') products_page = ProductsPage(self.driver) products_page.add_button.click() add_dialog = ProductsAddDialog(self.driver) add_dialog.name.send_keys(product_name) add_dialog.display.send_keys(display) add_dialog.sage.send_keys(sage) add_dialog.default_cut.select_input(default_cut) add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click() products_page.remove_entry(product_name)
def test_C96_CheckUserNotPaletterEdited(self): # Setup first_name = StringMethods.get_unique_name('first_name_') last_name = StringMethods.get_unique_name('last_name_') email = StringMethods.get_unique_email() password = StringMethods.get_unique_password() role = UserRole.Buyer # Setup - edit first_name_edited = StringMethods.get_unique_name('first_name_edited_') last_name_edited = StringMethods.get_unique_name('last_name_edited_') email_edited = StringMethods.get_unique_email() password_edited = StringMethods.get_unique_password() role_edited = UserRole.Manager self.addCleanup(self.users_page.remove_entry, first_name_edited) # Action self.users_page.add_entry(first_name, last_name, email, password, role) user_row = self.users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name) self.users_page.edit_entry(user_row, first_name_edited, last_name_edited, email_edited, password_edited, role_edited) # Assert self.users_page.wait_for_page() user_row = self.users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name_edited) self.assertIsNotNone(user_row) self.assertEqual(first_name_edited, user_row[HeadersUsers.FirstName])
def test_C122_CheckUserPaletterEdited(self): # fails because a market cannot be added # Setup first_name = StringMethods.get_unique_name('first_name_') last_name = StringMethods.get_unique_name('last_name_') email = StringMethods.get_unique_email() password = StringMethods.get_unique_password() role = UserRole.Paletter # Setup - edit first_name_edited = StringMethods.get_unique_name('first_name_edited_') last_name_edited = StringMethods.get_unique_name('last_name_edited_') email_edited = StringMethods.get_unique_email() password_edited = StringMethods.get_unique_password() role_edited = UserRole.Manager self.addCleanup(self.users_page.remove_entry, first_name_edited) # Action self.add_market(self.market_name, self.number_of_doors) users_page = UsersPage(self.driver) users_page.add_entry(first_name, last_name, email, password, role) user_row = users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name) users_page.edit_entry(user_row, first_name_edited, last_name_edited, email_edited, password_edited, role_edited) # Assert user_row = users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name_edited) self.assertIsNotNone(user_row) self.assertEqual(first_name_edited, user_row[HeadersUsers.FirstName]) self.remove_market(self.market_name)
def test_C14_CheckMarketEdited(self): # fails and unable to test because of C13 # Setup market_name = StringMethods.get_unique_name('market_name_') number_of_doors = StringMethods.get_unique_number() delivery_time = StringMethods.get_unique_digit() market_cost = StringMethods.get_unique_number() # Setup - edit market_name_edited = StringMethods.get_unique_name('market_name_') number_of_doors_edited = StringMethods.get_unique_number() delivery_time_edited = StringMethods.get_unique_digit() market_cost_edited = StringMethods.get_unique_number() self.addCleanup(self.markets_page.remove_entry, market_name_edited) # Action self.markets_page.add_entry(market_name, number_of_doors, delivery_time, market_cost) markets_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name) self.markets_page.edit_entry(markets_row, market_name_edited, number_of_doors_edited, delivery_time_edited, market_cost_edited) # Assert self.markets_page.wait_for_page() markets_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name_edited) self.assertIsNotNone(markets_row) self.assertEqual(market_name_edited, markets_row[HeadersMarkets.Name])
def test_C117_CheckNoDuplicateEntriesAllowed(self): # fails because duplication is allowed # Setup customer_name = StringMethods.get_unique_name('customer_name_') sage_code = StringMethods.get_unique_name('sage_') display = StringMethods.get_unique_name('display_') transport = None currency = Currency.Pound weight = Weight.Kg hygiene = False expected_error = 'Duplicate entries are not allowed.' # Action self.add_transport(self.transport_name) customers_page = CustomersPage(self.driver) customers_page.add_entry(customer_name, sage_code, display, transport, currency, weight, hygiene) confirmation_dialog = ConfirmationMessageDialog(self.driver) confirmation_dialog.ok_button.click() PrintMessage('Customer created.') customers_page = CustomersPage(self.driver) customers_page.add_button.click() add_dialog = CustomersAddDialog(self.driver) add_dialog.name.send_keys(customer_name) add_dialog.sage.send_keys(sage_code) add_dialog.display.send_keys(display) add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click() customers_page.remove_entry(customer_name)
def test_C38_CheckBoatDetailsThenEdit(self): # Setup boat_name = StringMethods.get_unique_name('boat_name_') self.add_office(self.office_name) # Setup - edit boat_name_edited = StringMethods.get_unique_name('boat_name_edited_') # Action boats_page = BoatsPage(self.driver) boats_page.add_entry(boat_name, self.office_name) boat_row = boats_page.table.get_row_for_field_value( HeadersBoats.Name, boat_name) boat_row.details_row_item.click() check_dialog = BoatsCheckDialog(self.driver) check_dialog.edit_entry(boat_name_edited, self.office_name) # Assert boat_row = boats_page.table.get_row_for_field_value( HeadersBoats.Name, boat_name_edited) self.assertIsNotNone(boat_row) self.assertEqual(boat_name_edited, boat_row[HeadersBoats.Name]) self.assertEqual(self.office_name, boat_row[HeadersBoats.Supplier]) boats_page.remove_entry(boat_name_edited) self.remove_office(self.office_name)
def test_C116_CheckCustomerWithTransportDetailsThenDelete(self): # Setup no_customers_message = 'There is no data to display' customer_name = StringMethods.get_unique_name('customer_name_') sage_code = StringMethods.get_unique_name('sage_') display = StringMethods.get_unique_name('display_') transport = None currency = Currency.Pound weight = Weight.Kg hygiene = False # Action self.add_transport(self.transport_name) customers_page = CustomersPage(self.driver) customers_page.add_entry(customer_name, sage_code, display, transport, currency, weight, hygiene) customers_page = CustomersPage(self.driver) customer_row = customers_page.table.get_row_for_field_value(HeadersCustomers.Name, customer_name) customer_row.details_row_item.click() check_dialog = CustomersCheckDialog(self.driver) check_dialog.remove_entry(customer_name) # Assert self.assertEqual(no_customers_message, customers_page.empty_text) self.remove_transport(self.transport_name)
def test_C111_CheckCustomerWithTransportAdded(self): # Setup customer_name = StringMethods.get_unique_name('customer_name_') sage_code = StringMethods.get_unique_name('sage_') display = StringMethods.get_unique_name('display_') transport = None currency = Currency.Pound weight = Weight.Kg hygiene=False # Action self.add_transport(self.transport_name) customers_page = CustomersPage(self.driver) customers_page.add_entry(customer_name, sage_code, display, transport, currency, weight, hygiene) # Assert customers_page = CustomersPage(self.driver) customer_row = customers_page.table.get_row_for_field_value(HeadersCustomers.Name, customer_name) self.assertIsNotNone(customer_row) self.assertEqual(customer_name, customer_row[HeadersCustomers.Name]) self.assertEqual(sage_code, customer_row[HeadersCustomers.SageCode]) customers_page.delete_row(customer_row) self.remove_transport(self.transport_name)
def test_C35_CheckBoatEdited(self): # Setup boat_name = StringMethods.get_unique_name('boat_name_') self.add_office(self.office_name) # Setup - edit boat_name_edited = StringMethods.get_unique_name('boat_name_edited_') # Action boats_page = BoatsPage(self.driver) boats_page.add_entry(boat_name, self.office_name) boat_row = boats_page.table.get_row_for_field_value( HeadersBoats.Name, boat_name) boats_page.edit_entry(boat_row, boat_name_edited, self.office_name) # Assert boats_page = BoatsPage(self.driver) boat_row = boats_page.table.get_row_for_field_value( HeadersBoats.Name, boat_name_edited) self.assertIsNotNone(boat_row) self.assertEqual(boat_name_edited, boat_row[HeadersBoats.Name]) self.assertEqual(self.office_name, boat_row[HeadersBoats.Supplier]) boats_page.remove_entry(boat_name_edited) self.remove_office(self.office_name)
def test_C77_CheckCategoryDetailsThenEdit(self): # Setup category_name = StringMethods.get_unique_name('category_name_') # Setup - edit category_name_edited = StringMethods.get_unique_name('category_name_edited_') # Action self.add_product(self.product_name, self.display, self.sage, self.default_cut) self.add_species(self.species_name) categories_page = CategoriesPage(self.driver) categories_page.add_entry(category_name, self.species_name, self.product_name) category_row = categories_page.table.get_row_for_field_value(TableHeaders.Name, category_name) category_row.details_row_item.click() check_dialog = CategoriesCheckDialog(self.driver) check_dialog.edit_entry(category_name_edited, self.species_name, self.product_name) # Assert categories_page = CategoriesPage(self.driver) category_row = categories_page.table.get_row_for_field_value(TableHeaders.Name, category_name_edited) self.assertIsNotNone(category_row) self.assertEqual(category_name_edited, category_row[TableHeaders.Name]) categories_page.remove_entry(category_name_edited) self.remove_product(self.product_name) self.remove_species(self.species_name)
def test_C62_CheckProductEdited(self): # Setup product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole # Setup - edit product_name_edited = StringMethods.get_unique_name('product_name_') display_edited = StringMethods.get_unique_name('pn_') sage_edited = StringMethods.get_unique_digit() default_cut_edited = DefaultCut.butterfly self.addCleanup(self.products_page.remove_entry, product_name_edited) # Action self.products_page.add_entry(product_name, display, sage, default_cut) product_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) self.products_page.edit_entry(product_row, product_name_edited, display_edited, sage_edited, default_cut_edited) # Assert self.products_page.wait_for_page() product_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name_edited) self.assertIsNotNone(product_row) self.assertEqual(product_name_edited, product_row[HeadersProducts.Name])
def test_C17_CheckMarketDetailsThenEdit(self): # fails and unable to test because of C13 # Setup market_name = StringMethods.get_unique_name('market_name_') number_of_doors = StringMethods.get_unique_number() delivery_time = StringMethods.get_unique_digit() market_cost = StringMethods.get_unique_number() # Setup - edit market_name_edited = StringMethods.get_unique_name('market_name_') number_of_doors_edited = StringMethods.get_unique_number() delivery_time_edited = StringMethods.get_unique_digit() market_cost_edited = StringMethods.get_unique_number() self.addCleanup(self.markets_page.remove_entry, market_name_edited) # Action self.markets_page.add_entry(market_name, number_of_doors, delivery_time, market_cost) market_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name) market_row.details_row_item.click() check_dialog = MarketsCheckDialog(self.driver) check_dialog.edit_entry(market_name_edited, number_of_doors_edited, delivery_time_edited, market_cost_edited) # Assert market_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name_edited) self.assertIsNotNone(market_row) self.assertEqual(market_name_edited, market_row[HeadersMarkets.Name])
def setUp(self): super(SmokeTestCategories, self).setUp() self.categories_page = CategoriesPage(self.driver) self.species_name = StringMethods.get_unique_name('species_name_') self.product_name = StringMethods.get_unique_name('product_name_') self.display = StringMethods.get_unique_name('pn_') self.sage = StringMethods.get_unique_digit() self.default_cut = DefaultCut.whole
def setUp(self): super(SmokeTestPurchases, self).setUp() self.overview_page = PurchasesOverviewPage(self.driver) self.all_page = PurchasesAllPage(self.driver) self.species_name = StringMethods.get_unique_name('species_name_') self.market_name = StringMethods.get_unique_name('market_name_') self.number_of_doors = StringMethods.get_unique_number() self.office_name = StringMethods.get_unique_name('office_name_') self.boat_name = StringMethods.get_unique_name('boat_name_')
def setUp(self): super(SmokeTestSales, self).setUp() self.overview_page = SalesOverviewPage(self.driver) self.all_page = SalesAllPage(self.driver) self.customer_name = StringMethods.get_unique_name('customer_name_') self.sage_code = StringMethods.get_unique_name('sage_') self.transport_name = StringMethods.get_unique_name('transport_name_') self.product_name = StringMethods.get_unique_name('product_name_') self.display = StringMethods.get_unique_name('pn_') self.sage = StringMethods.get_unique_digit() self.default_cut = DefaultCut.whole
def test_C63_CheckProductRemoved(self): # Setup no_products_message = 'There is no data to display' product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole # Action self.products_page.add_entry(product_name, display, sage, default_cut) products_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) self.products_page.delete_row(products_row) # Assert self.assertEqual(no_products_message, self.products_page.empty_text)
def test_C93_CheckNoDuplicationValidation(self): # fails dbecause duplication is allowed # Setup category_name = StringMethods.get_unique_name('category_name_') expected_error = 'Duplicate entries are not allowed.' # Action self.add_product(self.product_name, self.display, self.sage, self.default_cut) self.add_species(self.species_name) categories_page = CategoriesPage(self.driver) categories_page.add_entry(category_name, self.species_name, self.product_name) categories_page = CategoriesPage(self.driver) categories_page.add_button.click() add_dialog = CategoriesAddDialog(self.driver) add_dialog.name.send_keys(category_name) add_dialog.species.select_input_enter(self.species_name) add_dialog.product.select_input_enter(self.product_name) add_dialog.save_button.click() # Assert add_dialog.cancel_button.click() categories_page = CategoriesPage(self.driver) categories_page.remove_entry(category_name) self.remove_product(self.product_name) self.remove_species(self.species_name)
def test_C107_CheckNoDuplicateEntriesAllowed(self): # fails and unable to test because of C13 # Setup market_name = StringMethods.get_unique_name('market_name_') number_of_doors = StringMethods.get_unique_number() delivery_time = StringMethods.get_unique_digit() market_cost = StringMethods.get_unique_number() expected_error = 'Duplicate entries are not allowed.' # Action self.markets_page.add_entry(market_name, number_of_doors, delivery_time, market_cost) markets_page = MarketsPage(self.driver) markets_page.add_button.click() add_dialog = MarketsAddDialog(self.driver) add_dialog.name.send_keys(market_name) add_dialog.number_of_doors.send_keys(number_of_doors) add_dialog.delivery_time.send_keys(delivery_time) add_dialog.market_cost.send_keys(market_cost) add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click() markets_page.remove_entry(market_name)
def test_C46_CheckCustomerRemoved(self): # Setup no_customer_message = 'There is no data to display' customer_name = StringMethods.get_unique_name('customer_name_') sage_code = StringMethods.get_unique_name('sage_') display = StringMethods.get_unique_name('display_') transport = None currency = Currency.Pound weight = Weight.Kg hygiene = False # Action self.customers_page.add_entry(customer_name, sage_code, display, transport, currency, weight, hygiene) customer_row = self.customers_page.table.get_row_for_field_value(HeadersCustomers.Name, customer_name) self.customers_page.delete_row(customer_row) # Assert self.assertEqual(no_customer_message, self.customers_page.empty_text)
def test_C64_CheckNewProductRightDetails(self): # Setup product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole # Action self.products_page.add_entry(product_name, display, sage, default_cut) products_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) products_row.details_row_item.click() check_dialog = ProductsCheckDialog(self.driver) # Assert self.assertEqual(product_name, check_dialog.product_name) check_dialog.remove_entry(product_name)
def test_C102_CheckNoEmailValidation(self): # Setup expected_error = 'Email address is needed' first_name = StringMethods.get_unique_name('first_name_') last_name = StringMethods.get_unique_name('last_name_') # Action self.users_page.add_button.click() add_dialog = UsersAddDialog(self.driver) add_dialog.first_name.send_keys(first_name) add_dialog.last_name.send_keys(last_name) add_dialog.email.click() add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click()
def test_C97_CheckUserNotPaletterRemoved(self): # Setup first_name = StringMethods.get_unique_name('first_name_') last_name = StringMethods.get_unique_name('last_name_') email = StringMethods.get_unique_email() password = StringMethods.get_unique_password() role = UserRole.Buyer # Action self.users_page.add_entry(first_name, last_name, email, password, role) user_row = self.users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name) self.users_page.delete_row(user_row) user_row = self.users_page.table.get_row_for_field_value( HeadersUsers.FirstName, first_name) # Assert self.assertIsNone(user_row)
def test_C120_CheckIncorrectEmailValidation(self): # Setup expected_error = 'EMAIL MUST FOLLOW FORMAT: [email protected]' first_name = StringMethods.get_unique_name('first_name_') last_name = StringMethods.get_unique_name('last_name_') email = '@' # Action self.users_page.add_button.click() add_dialog = UsersAddDialog(self.driver) add_dialog.first_name.send_keys(first_name) add_dialog.last_name.send_keys(last_name) add_dialog.email.send_keys(email) add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click()
def test_C70_CheckNoSageCodeValidation(self): # fails because no cancel button # Setup expected_error = 'The sage code is required' product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') # Action self.products_page.add_button.click() add_dialog = ProductsAddDialog(self.driver) add_dialog.name.send_keys(product_name) add_dialog.display.send_keys(display) add_dialog.sage.click() add_dialog.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click()
def test_C66_CheckProductDetailsThenDelete(self): # Setup no_products_message = 'There is no data to display' product_name = StringMethods.get_unique_name('product_name_') display = StringMethods.get_unique_name('pn_') sage = StringMethods.get_unique_digit() default_cut = DefaultCut.whole # Action self.products_page.add_entry(product_name, display, sage, default_cut) products_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) products_row.details_row_item.click() check_dialog = ProductsCheckDialog(self.driver) check_dialog.remove_entry(product_name) # Assert self.assertEqual(no_products_message, self.products_page.empty_text)
def test_C56_CheckSpeciesEdited(self): # Setup species_name = StringMethods.get_unique_name('species_name_') # Setup - edit species_name_edited = StringMethods.get_unique_name('species_name_edited_') self.addCleanup(self.species_page.remove_entry, species_name_edited) # Action self.species_page.add_entry(species_name) species_row = self.species_page.table.get_row_for_field_value(TableHeaders.Name, species_name) self.species_page.edit_entry(species_row, species_name_edited) # Assert self.species_page.wait_for_page() species_row = self.species_page.table.get_row_for_field_value(TableHeaders.Name, species_name_edited) self.assertIsNotNone(species_row) self.assertEqual(species_name_edited, species_row[TableHeaders.Name])