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 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_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 test_C15_CheckMarketRemoved(self): # fails and unable to test because of C13 # Setup no_markets_message = 'There is no data to display' market_name = StringMethods.get_unique_name('market_name_') number_of_doors = StringMethods.get_unique_number() # Action self.markets_page.add_entry(market_name, number_of_doors) markets_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name) self.markets_page.delete_row(markets_row) # Assert self.assertEqual(no_markets_message, self.markets_page.empty_text)
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_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_C4_CheckTransportRemoved(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no # 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.delete_row(transport_row) # Assert transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name) self.assertIsNone(transport_row)
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_C2_CheckTransportAdded(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no self.addCleanup(self.transports_page.remove_entry, transport_name) # Action self.transports_page.add_entry(transport_name, weight, shipping) # Assert transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name) self.assertIsNotNone(transport_row) self.assertEqual(transport_name, transport_row[HeadersTransports.Name]) self.assertEqual(weight + ' kg', transport_row[HeadersTransports.Weight])
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_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_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_C16_CheckNewMarketRightDetails(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() # 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) # Assert self.assertEqual(market_name, check_dialog.market_name) check_dialog.remove_entry(market_name)
def test_C18_CheckMarketDetailsThenDelete(self): # fails and unable to test because of C13 # Setup no_market_message = 'There is no data to display' number_of_doors = StringMethods.get_unique_number() delivery_time = StringMethods.get_unique_digit() market_cost = StringMethods.get_unique_number() market_name = StringMethods.get_unique_name('market_name_') # 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.remove_entry(market_name) # Assert self.assertEqual(no_market_message, self.markets_page.empty_text)
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_C105_CheckNoDuplicateEntriesAllowed(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no error_message = 'Duplicate entries are not allowed.' # Action self.transports_page.add_entry(transport_name, weight, shipping) transports_page = TransportsPage(self.driver) transports_page.add_entry(transport_name, weight, shipping) message_dialog = MessageDialog(self.driver) message_dialog.wait() # Assert self.assertTrue(error_message, message_dialog.get_inner_text()) self.transports_page.remove_entry(transport_name)
def test_C13_CheckMarketAdded(self): # fails due to raised error # 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() self.addCleanup(self.markets_page.remove_entry, market_name) # Action self.markets_page.add_entry(market_name, number_of_doors, delivery_time, market_cost) # Assert market_row = self.markets_page.table.get_row_for_field_value(HeadersMarkets.Name, market_name) self.assertIsNotNone(market_row) self.assertEqual(market_name, market_row[HeadersMarkets.Name]) self.assertEqual(number_of_doors, market_row[HeadersMarkets.NumberOfDoors]) self.assertEqual(delivery_time, market_row[HeadersMarkets.DeliveryTime])
def test_C11_CheckTransportDetailsThenDelete(self): # Setup transport_name = StringMethods.get_unique_name('transport_name_') weight = StringMethods.get_unique_number() shipping = CheckOneBox.no # 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.remove_entry(transport_name) # Assert transport_row = self.transports_page.table.get_row_for_field_value( HeadersTransports.Name, transport_name) self.assertIsNone(transport_row)
def test_C139_CheckNoSpeciesValidation(self): # Setup expected_error = 'The species_id field is required.' no_boxes = StringMethods.get_unique_digit() kg = StringMethods.get_unique_digit() cost = StringMethods.get_unique_digit() # Action self.all_page.add_button.click() add_dialog = PurchasesAddDialog(self.driver) add_dialog.no_boxes.send_keys(no_boxes) add_dialog.kg.send_keys(kg) add_dialog.cost.send_keys(cost) add_dialog.save_button.click() # Assert self.assertEqual(expected_error, add_dialog.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])
def test_C47_CheckNewCustomerRightDetails(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.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) customer_row.details_row_item.click() check_dialog = CustomersCheckDialog(self.driver) # Assert self.assertEqual(customer_name, check_dialog.customer_name) check_dialog.remove_entry(customer_name)
def test_C150_CheckNoCostPerKgValidation(self): # fails because no error message is displayed # Setup expected_error = 'The cost per kg is required' number_of_boxes = StringMethods.get_unique_digit() box_weight = StringMethods.get_unique_digit() # Action self.add_category(self.category_name) self.add_market(self.market_name, self.number_of_doors) self.all_page.number_of_boxes.send_keys(number_of_boxes) self.all_page.box_weight.send_keys(box_weight) self.all_page.cost_per_kg.click() self.all_page.save_button.click() # Assert self.all_page.is_text_present(expected_error) self.remove_category(self.category_name) self.remove_market(self.market_name)
def test_C61_CheckProductAdded(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 self.addCleanup(self.products_page.remove_entry, product_name) # Action self.products_page.add_entry(product_name, display, sage, default_cut) # Assert product_row = self.products_page.table.get_row_for_field_value( HeadersProducts.Name, product_name) self.assertIsNotNone(product_row) self.assertEqual(product_name, product_row[HeadersProducts.Name]) self.assertEqual(display, product_row[HeadersProducts.DisplayName]) self.assertEqual(sage, product_row[HeadersProducts.SageProductCode]) self.assertEqual(default_cut, product_row[HeadersProducts.DefaultCut])
def test_C44_CheckCustomerAdded(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 self.addCleanup(self.customers_page.remove_entry, customer_name) # Action self.customers_page.add_entry(customer_name, sage_code, display, transport, currency, weight, hygiene) # Assert customer_row = self.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])
def test_C22_CheckIncorrectDeliveryTimeLess0Validation(self): # fails due to no cancel button # Setup market_name = StringMethods.get_unique_name('market_name_') number_of_doors = StringMethods.get_unique_number() delivery_time = '-1' expected_error = 'Please enter a value greater than or equal to 0.' # Action self.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.save_button.click() # Assert add_dialog.is_text_present(expected_error) add_dialog.cancel_button.click()