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_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_C78_CheckCategoryDetailsThenDelete(self):
        # Setup
        category_name = StringMethods.get_unique_name('category_name_')
        no_categories_message = 'There is no data to display'

        # 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.remove_entry(category_name)

        # Assert
        self.assertEqual(no_categories_message, categories_page.empty_text)
 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 test_C76_CheckNewCategoryRightDetails(self):
        # Setup
        category_name = StringMethods.get_unique_name('category_name_')

        # 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)

        # Assert
        self.assertEqual(category_name, check_dialog.category_name)

        check_dialog.remove_entry(category_name)

        self.remove_product(self.product_name)
        self.remove_species(self.species_name)
    def test_C75_CheckCategoryRemoved(self):
        # Setup
        no_categories_message = 'There is no data to display'
        category_name = StringMethods.get_unique_name('category_name_')

        # 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)
        categories_page.delete_row(category_row)

        # Assert
        self.assertEqual(no_categories_message, categories_page.empty_text)

        self.remove_product(self.product_name)
        self.remove_species(self.species_name)
    def test_C73_CheckCategoryAdded(self):
        # Setup
        category_name = StringMethods.get_unique_name('category_name_')

        # 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)

        # Assert
        category_row = categories_page.table.get_row_for_field_value(TableHeaders.Name, category_name)
        self.assertIsNotNone(category_row)
        self.assertEqual(category_name, category_row[TableHeaders.Name])

        categories_page.remove_entry(category_name)

        self.remove_product(self.product_name)
        self.remove_species(self.species_name)
 def remove_category(self, category_name):
     category_page = CategoriesPage(self.driver)
     category_page.remove_entry(category_name)
 def add_category(self, category_name):
     category_page = CategoriesPage(self.driver)
     category_page.add_entry(category_name)