Esempio n. 1
0
def make_load():
    # Categories
    if not category_repo.get_all():
        drinks = Category(name='Drinks')
        jellies = Category(name='Breads')
        breads = Category(name='Jellies')
        categories = [drinks, breads, jellies]
        category_repo.save_many(categories)
        category_repo.commit()
    else:
        drinks = category_repo.get_by_name(name='Drinks')
        breads = category_repo.get_by_name(name='Breads')
        jellies = category_repo.get_by_name(name='Jellies')

    # SubCategories
    if not sub_category_repo.get_all():
        milks = SubCategory(name='Milks', category=drinks)
        low_calorie_jellies = SubCategory(name='Low Calories Jellies',
                                          category=jellies)
        white_breads = SubCategory(name='White Breads', category=breads)
        subcategories = [milks, low_calorie_jellies, white_breads]
        sub_category_repo.save_many(subcategories)
        sub_category_repo.commit()
    else:
        milks = sub_category_repo.get_by_name(name='Milks')
        low_calorie_jellies = sub_category_repo.get_by_name(
            name='Low Calories Jellies')
        white_breads = sub_category_repo.get_by_name(name='White Breads')

    print('inserting Milks...')
    milk_a = Product(name='Milk A',
                     price=3.99,
                     gtin='1234',
                     sub_category=milks)
    milk_b = Product(name='Milk B',
                     price=4.01,
                     gtin='1235',
                     sub_category=milks)
    prod_repo.save(milk_a)
    prod_repo.save(milk_b)
    prod_repo.commit()

    print('inserting Bread and Jelly from a list...')
    products = [
        Product(name='Bread',
                price=0.99,
                gtin='4321',
                sub_category=white_breads),
        Product(name='Jelly',
                price=5.99,
                gtin='1111',
                sub_category=low_calorie_jellies)
    ]
    prod_repo.save_many(products)
    prod_repo.commit()
Esempio n. 2
0
 def test_default_sub_category_with(self):
     self.category_repo.get_by_id.return_value = Category(
         _id='418f5f846e1149e28b5f5310bc7ea8c5', name='Breads')
     sub_category = self.product_factory.default_sub_category_with(
         name='White Breads',
         category_id='418f5f846e1149e28b5f5310bc7ea8c5')
     self.assertIsNotNone(sub_category)
Esempio n. 3
0
    def default_category_with(self, name):
        category = Category(name=name)
        guard = CategoryGuard()
        if not guard.check(category):
            raise CategoryException(guard.get_issues())

        return category
Esempio n. 4
0
    def test_default_category_to_update(self):
        self.category_repo.get_by_id.return_value = Category(
            _id='418f5f846e1149e28b5f5310bc7ea8c5', name='Milks')
        category = self.product_factory.default_category_to_update(
            _id='418f5f846e1149e28b5f5310bc7ea8c5', name='Good Milks')

        self.assertIsNotNone(category)
        self.assertEqual(category.name, 'Good Milks')
Esempio n. 5
0
 def setUp(self):
     self.category = Category('Breads')
     self.sub_category = SubCategory('Gluten Free Breads',
                                     category=self.category)
     self.product = Product(
         name='Warburtons Gluten Free Tiger Artisan Bloomer',
         gtin='1234567890123',
         price=3.20,
         sub_category=self.sub_category)
     self.supermarket = SupermarketVO(
         _id='e6981d6ea68b4cc682bbb03139ef679e',
         name='MySupermarket',
         is_active=True)
Esempio n. 6
0
 def test_default_sub_category_to_update(self):
     category = Category(_id='418f5f846e1149e28b5f5310bc7ea8c5',
                         name='Breads')
     self.category_repo.get_by_id.return_value = category
     self.sub_category_repo.get_by_id.return_value = SubCategory(
         _id='b07e1d28b7cf45deb63ff5f19e764f90',
         name='White Breads',
         category=category)
     sub_category = self.product_factory.default_sub_category_to_update(
         _id='b07e1d28b7cf45deb63ff5f19e764f90',
         name='Gluten Free Breads',
         category_id=category.id)
     self.assertIsNotNone(sub_category)
     self.assertEqual(sub_category.name, 'Gluten Free Breads')
Esempio n. 7
0
 def setUp(self):
     self.category = Category('Breads')
     self.sub_category = SubCategory('Gluten Free Breads',
                                     category=self.category)
     self.product = Product(
         name='Warburtons Gluten Free Tiger Artisan Bloomer',
         gtin='1234567890123',
         price=3.20,
         sub_category=self.sub_category)
     self.product_with_id = Product(
         name='Warburtons Gluten Free Multiseed Loaf',
         gtin='1234567890321',
         price=3.20,
         sub_category=self.sub_category,
         _id='b07e1d28b7cf45deb63ff5f19e764f90')
Esempio n. 8
0
    def test_default_product_with(self):
        category = Category(_id='418f5f846e1149e28b5f5310bc7ea8c5',
                            name='Breads')
        sub_category = SubCategory(_id='b07e1d28b7cf45deb63ff5f19e764f90',
                                   name='White Breads',
                                   category=category)
        self.sub_category_repo.get_by_id.return_value = sub_category
        self.product_repo.get_by_gtin.return_value = None

        product = self.product_factory.default_product_with(
            name='Warburtons Gluten Free Multiseed Loaf',
            gtin='1234567890123',
            price=5.99,
            sub_category_id=sub_category.id)

        self.assertIsNotNone(product)
Esempio n. 9
0
    def setUp(self):
        with app.app_context():
            db.create_all()

        self.category_repo = CategoryRepository()
        self.sub_category_repo = SubCategoryRepository()
        self.product_repo = ProductRepository()
        self.supermarket_dao = SupermarketDAO()
        self.product_supermarket_repo = ProductSupermarketRepository()

        self.category = Category(_id='bd932a425cf040509a6071ea9b4bc138',
                                 name='Breads')
        self.sub_category = SubCategory(_id='5bcd3cca9a3e4065a248c821cd2f1f32',
                                        name='Gluten Free Breads',
                                        category=self.category)

        self.category_repo.save(self.category)
        self.sub_category_repo.save(self.sub_category)

        self.app_context = app.app_context
Esempio n. 10
0
 def setUp(self):
     self.category = Category('Breads')
     self.sub_category = SubCategory('Gluten Free Breads',
                                     category=self.category)
     product = Product(name='Warburtons Gluten Free Tiger Artisan Bloomer',
                       gtin='1234567890123',
                       price=3.20,
                       sub_category=self.sub_category)
     supermarket = SupermarketVO(_id='e6981d6ea68b4cc682bbb03139ef679e',
                                 name='MySupermarket',
                                 is_active=True)
     self.product_supermarket = ProductSupermarket(
         product=product,
         supermarket=supermarket,
         price_update_url='http://www.mysupermarket.co.uk')
     self.product_supermarket_with_id = ProductSupermarket(
         product=product,
         supermarket=supermarket,
         price_update_url='http://www.mysupermarket.co.uk',
         _id='fdf88acb94984a859bd342c05ead9beb')
Esempio n. 11
0
class CategoryTest(TestCase):
    def setUp(self):
        self.category = Category('Milk')
        self.category_with_id = Category(
            'Bread', _id='b07e1d28b7cf45deb63ff5f19e764f90')

    def test_create_category(self):
        self.assertIsNotNone(self.category)

    def test_create_category_with_id(self):
        self.assertIsNotNone(self.category_with_id)
        self.assertEqual(self.category_with_id.id,
                         'b07e1d28b7cf45deb63ff5f19e764f90')

    def test_category_as_json(self):
        expected = {
            'id': self.category.id,
            'name': 'Milk',
            'subcategories': []
        }
        self.assertEqual(self.category.as_json(), expected)
Esempio n. 12
0
    def test_default_product_to_update(self):
        category = Category(_id='418f5f846e1149e28b5f5310bc7ea8c5',
                            name='Breads')
        sub_category = SubCategory(_id='b07e1d28b7cf45deb63ff5f19e764f90',
                                   name='White Breads',
                                   category=category)
        self.sub_category_repo.get_by_id.return_value = sub_category
        self.product_repo.get_by_id.return_value = Product(
            name='Warburtons Gluten Free Multiseed Loaf',
            gtin='1234567890123',
            price=5.99,
            sub_category=sub_category)

        product = self.product_factory.default_product_to_update(
            name='Warburtons Gluten Free Multiseed Loaf',
            gtin='1234567890123',
            price=7.99,
            sub_category_id=sub_category.id,
            _id='6fc9713877dc40f78ba5f77136c6c67b')

        self.assertIsNotNone(product)
        self.assertEqual(product.price, 7.99)
Esempio n. 13
0
 def setUp(self):
     self.product_repo = mock.Mock()
     self.supermarket_dao = mock.Mock()
     self.product_supermarket_repo = mock.Mock()
     self.product_supermarket_factory = ProductSupermarketFactory(
         self.product_repo, self.supermarket_dao,
         self.product_supermarket_repo)
     self.category = Category('Breads')
     self.sub_category = SubCategory('Gluten Free Breads',
                                     category=self.category)
     self.product = Product(
         name='Warburtons Gluten Free Tiger Artisan Bloomer',
         gtin='1234567890123',
         price=3.20,
         sub_category=self.sub_category)
     self.supermarket = SupermarketVO(
         _id='e6981d6ea68b4cc682bbb03139ef679e',
         name='MySupermarket',
         is_active=True)
     self.existing_product_supermarket = ProductSupermarket(
         product=self.product,
         supermarket=self.supermarket,
         price_update_url='http://www.mysupermarket.co.uk')
Esempio n. 14
0
 def test_check_ok(self):
     category = Category(name='Milk')
     self.assertTrue(CategoryGuard().check(category))
Esempio n. 15
0
    def test_check_invalid_name(self):
        guard = CategoryGuard()
        short_name = Category(name='Mi')

        self.assertFalse(guard.check(short_name), 'A short name is expected.')
Esempio n. 16
0
    def test_check_no_name(self):
        guard = CategoryGuard()
        null_name = Category(name=None)

        self.assertFalse(guard.check(null_name), 'No name is expected')
Esempio n. 17
0
 def setUp(self):
     self.category = Category('Breads')
     self.sub_category = SubCategory('Gluten Free Breads',
                                     category=self.category)
Esempio n. 18
0
 def setUp(self):
     self.category = Category('Milk')
     self.category_with_id = Category(
         'Bread', _id='b07e1d28b7cf45deb63ff5f19e764f90')
Esempio n. 19
0
def create_db():
    db.create_all()

    category_repo = CategoryRepository()
    sub_category_repo = SubCategoryRepository()
    prod_repo = ProductRepository()
    supermarket_dao = SupermarketDAO()

    # Categories
    if not category_repo.get_all():
        drinks = Category(name='Drinks')
        jellies = Category(name='Breads')
        breads = Category(name='Jellies')
        categories = [drinks, breads, jellies]
        category_repo.save_many(categories)
        category_repo.commit()
    else:
        drinks = category_repo.get_by_name(name='Drinks')
        breads = category_repo.get_by_name(name='Breads')
        jellies = category_repo.get_by_name(name='Jellies')

    # SubCategories
    if not sub_category_repo.get_all():
        milks = SubCategory(name='Milks', category=drinks)
        low_calorie_jellies = SubCategory(name='Low Calories Jellies',
                                          category=jellies)
        white_breads = SubCategory(name='White Breads', category=breads)
        subcategories = [milks, low_calorie_jellies, white_breads]
        sub_category_repo.save_many(subcategories)
        sub_category_repo.commit()
    else:
        milks = sub_category_repo.get_by_name(name='Milks')
        low_calorie_jellies = sub_category_repo.get_by_name(
            name='Low Calories Jellies')
        white_breads = sub_category_repo.get_by_name(name='White Breads')

    # Products
    if not prod_repo.get_all():
        products = [
            Product(name='Milk A', price=3.99, gtin='1234',
                    sub_category=milks),
            Product(name='Milk B', price=4.01, gtin='1235',
                    sub_category=milks),
            Product(name='Bread',
                    price=0.99,
                    gtin='4321',
                    sub_category=white_breads),
            Product(name='Jelly',
                    price=5.99,
                    gtin='1111',
                    sub_category=low_calorie_jellies)
        ]
        prod_repo.save_many(products)
        prod_repo.commit()

    # Supermarkets
    if not supermarket_dao.get_all():
        supermarkets = [
            SupermarketVO(
                _id='d441a91ce8cc4d838eb3ccf69de3f932',
                name='Supermercados Boa',
                is_active=True,
                module_name='src.domain.pricing_updates.boa_scraping',
                class_name='BoaScraping'),
            SupermarketVO(
                _id='73dadb6c0d164e6b8a48c52a8aa1091f',
                name='Carrefour',
                is_active=True,
                module_name='src.domain.pricing_updates.carrefour_scraping',
                class_name='CarrefourScraping')
        ]
        supermarket_dao.save_many(supermarkets)
Esempio n. 20
0
 def test_check_ok(self):
     sub_category = SubCategory(name='Milks', category=Category('Milk'))
     self.assertTrue(SubCategoryGuard().check(sub_category))
Esempio n. 21
0
    def test_check_no_name(self):
        guard = SubCategoryGuard()
        null_name = SubCategory(name=None, category=Category('Milk'))

        self.assertFalse(guard.check(null_name), 'No name is expected')
Esempio n. 22
0
 def setUp(self):
     self.sub_category = SubCategory('Milks', Category('Milk'))
     self.sub_category_with_id = SubCategory(
         'White Breads',
         Category('Bread'),
         _id='b07e1d28b7cf45deb63ff5f19e764f90')