コード例 #1
0
 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
コード例 #2
0
    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_')
コード例 #3
0
    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])
コード例 #4
0
    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])
コード例 #5
0
    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)
コード例 #6
0
    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])
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
    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)
コード例 #11
0
    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])
コード例 #12
0
    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)
コード例 #13
0
    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()
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
    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)
コード例 #17
0
    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)
コード例 #18
0
    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()
コード例 #19
0
    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)
コード例 #20
0
    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])
コード例 #21
0
    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)
コード例 #22
0
    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()
コード例 #23
0
    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()
コード例 #24
0
    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)
コード例 #25
0
    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])
コード例 #26
0
    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)
コード例 #27
0
    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)
コード例 #28
0
    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])
コード例 #29
0
    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])
コード例 #30
0
    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()