Beispiel #1
0
 def test_950g(self):
     product3 = Product(u'Молоко Веселый молочник 950г', category=self.milk)
     product4 = Product(u'Молоко Веселый молочник 950 г',
                        category=self.milk)
     self.assertEqual('0.95 kg', product3.get_package_key())
     self.assertEqual('0.95 kg', product4.get_package_key())
     self.assertFalse(product4.get_package().is_normal(self.milk))
     self.assertEqual(0.93,
                      round(product4.get_package().get_ratio(self.milk), 2))
Beispiel #2
0
 def test_250g_comma_preceding(self):
     sour_cream025 = Product(u'Сметана Углече Поле органическая 15%, 250г')
     key = sour_cream025.get_category_key()
     sour_cream = ProductCategory(key)
     self.assertEqual('0.25 kg', sour_cream025.get_package_key())
     self.assertEqual(0.625,
                      sour_cream025.get_package().get_ratio(sour_cream))
Beispiel #3
0
    def test_category_add_product(self):
        milk = self.category
        product1 = Product(u'Молоко Great Milk 1L')
        product2 = Product(u'Молоко Greatest Milk 1L')
        milk.add_product(product1, product2)
        self.keeper.register(product1, product2)
        transaction.commit()
        self.keeper.close()

        self.keeper = open_storage()
        milk = ProductCategory.fetch('milk', self.keeper)
        stored_product1 = Product.fetch(u'Молоко Great Milk 1L', self.keeper)
        stored_product2 = Product.fetch(u'Молоко Greatest Milk 1L',
                                        self.keeper)
        self.assertIn(stored_product1, milk.products)
        self.assertIn(stored_product2, milk.products)
Beispiel #4
0
 def setUp(self):
     try:
         shutil.rmtree(STORAGE_DIR)
     except OSError:
         pass
     os.mkdir(STORAGE_DIR)
     self.keeper = open_storage()
     category = ProductCategory('milk')
     product = Product(u'Молоко Great Milk 1L')
     merchant = Merchant('test merchant')
     self.keeper.register(category, product, merchant)
     transaction.commit()
     self.keeper.close()
     self.keeper = open_storage()
     self.category = ProductCategory.fetch('milk', self.keeper)
     self.product = Product.fetch(u'Молоко Great Milk 1L', self.keeper)
     self.merchant = Merchant.fetch('test merchant', self.keeper)
Beispiel #5
0
    def test_report_assembly_stored_product(self):
        product_title = u'Молоко Great Milk three 1L'
        product = Product(product_title, self.category)
        self.keeper.register(product)
        transaction.commit()
        self.keeper.close()

        self.keeper = open_storage()
        reporter_name = 'Jill'
        merchant_title = "Scotty's grocery 2"
        raw_data1 = {
            'product_title': product_title,
            'price_value': 42.6,
            'url': 'http://scottys2.com/products/milk/1',
            'merchant_title': merchant_title,
            'date_time': None,
            'reporter_name': reporter_name
        }
        report, stats = PriceReport.assemble(self.keeper, **raw_data1)
        transaction.commit()
        self.keeper.close()

        self.keeper = open_storage()
        stored_report = PriceReport.fetch(report.key, self.keeper)
        self.assertEqual(report.key, stored_report.key)

        product = Product.fetch(product_title, self.keeper)
        self.assertEqual(product_title, product.title)
        self.assertIn(report, product)

        category = ProductCategory.fetch('milk', self.keeper)
        self.assertIn(product, category)

        merchant = Merchant.fetch(merchant_title, self.keeper)
        self.assertEqual(merchant_title, merchant.title)
        self.assertIn(product, merchant)
        self.assertIn(merchant, product.merchants)
Beispiel #6
0
 def test_1_5kg(self):
     category = ProductCategory('rice')
     product = Product(u'Рис АГРОАЛЬЯНС краснодарский 1,5кг',
                       category=category)
     self.assertEqual('1.5 kg', product.get_package_key())
Beispiel #7
0
 def test_175g_space_and_comma_preceding(self):
     product = Product(u'Сметана Рузская 20%, 175г')
     self.assertEqual('0.175 kg', product.get_package_key())
Beispiel #8
0
 def test_1l_plus_05l(self):
     product = Product(u'Молоко Углече Поле органическое пастеризованное '
                       u'отборное 3,6%-5,2%, 1л + 0,5л подарок')
     self.assertEqual('1.5 l', product.get_package_key())
Beispiel #9
0
 def test_pasta(self):
     product = Product(u'Спагетти Макфа 950г')
     self.assertEqual('pasta', product.get_category_key())
Beispiel #10
0
 def test_900g(self):
     product = Product(u'Гречка Maltagliati ядрица 900г')
     self.assertEqual('0.9 kg', product.get_package_key())
Beispiel #11
0
 def test_4x0075g(self):
     product = Product(u'Булочка Щелковохлеб для хот-дога 0,3кг (4*0,075г)')
     self.assertEqual('0.3 kg', product.get_package_key())
Beispiel #12
0
 def test_05l(self):
     product6 = Product(u'Молоко Веселый молочник 0,5л', category=self.milk)
     self.assertEqual('0.5 l', product6.get_package().title)
Beispiel #13
0
 def test_buckwheat(self):
     product = Product(u'Крупа Мистраль гречневая "Зеленая", 450г')
     self.assertEqual('buckwheat', product.get_category_key())
Beispiel #14
0
 def test_1kg(self):
     product = Product(u'Груша конференция лоток КЛ 65+ 1кг')
     self.assertEqual('1 kg', product.get_package_key())
Beispiel #15
0
 def test_unknown(self):
     product5 = Product(u'Молоко Веселый молочник 999,4599 г',
                        category=self.milk)
     self.assertRaises(PackageLookupError, product5.get_package_key)
Beispiel #16
0
 def test_kefir_bread(self):
     product = Product(u'Хлеб Хлебный дом Кефирный в нарезке 450г')
     self.assertEqual('bread', product.get_category_key())
Beispiel #17
0
 def test_flour(self):
     product = Product(u'Мука Сокольническая пшеничная хлебопекарная '
                       u'высший сорт 800г банка')
     self.assertEqual('wheat flour', product.get_category_key())
Beispiel #18
0
 def test_apple_juice(self):
     product = Product(u'Напиток Актуаль Яблоко сыворотка с соком, 930г')
     self.assertRaises(CategoryLookupError, product.get_category_key)
Beispiel #19
0
 def test_025kg_dot_and_text_preceding(self):
     product = Product(u'Хлеб Геркулес зерновой половин.нар.0.25кг ХД')
     self.assertEqual('0.25 kg', product.get_package_key())
Beispiel #20
0
 def test_10pieces(self):
     product3_title = u'Яйцо Окское куриное С0 белое десяток'
     self.assertEqual('10 pcs', Product(product3_title).get_package_key())
Beispiel #21
0
 def test_085l(self):
     product = Product(u'МОЛОКО 3,2% п/п 0,85л КИРЗА', )
     self.assertEqual('0.85 l', product.get_package_key())
Beispiel #22
0
 def test_key_sanitizing(self):
     title = u'Молоко Красная Цена у/паст. 3.2% 1000г'
     product = Product(title)
     self.assertEqual(u'Молоко Красная Цена у-паст. 3.2% 1000г',
                      product.key)
Beispiel #23
0
 def test_02kg_decimal_dot(self):
     product = Product(u'Сметана 15% 0.2кг стакан Пискаревский')
     self.assertEqual('0.2 kg', product.get_package_key())
Beispiel #24
0
 def test_brown_sugar(self):
     product = Product(u'"Сахар Мистраль Демерара тростниковый '
                       u'нерафинированный, 1кг"')
     self.assertRaises(CategoryLookupError, product.get_category_key)
Beispiel #25
0
 def test_12x1l(self):
     product = Product(u'Молоко Parmalat ультрапастеризованное 3,5%, 12*1л')
     self.assertEqual('12 l', product.get_package_key())
Beispiel #26
0
 def test_1l_dot_preceding(self):
     product = Product(u'Молоко Пармалат 3.5% стерил.1л')
     self.assertEqual('1 l', product.get_package_key())
Beispiel #27
0
 def test_20pieces(self):
     egg = ProductCategory('chicken egg')
     product4_title = u'Яйцо динозавриное столовое, 20шт'
     self.assertEqual(2,
                      Product(product4_title).get_package().get_ratio(egg))
Beispiel #28
0
 def test_grecha(self):
     product = Product(u'Греча Ярмарка Ядрица, 800г')
     self.assertEqual('buckwheat', product.get_category_key())
Beispiel #29
0
 def test_500g_model_preceding(self):
     product = Product(u'Спагетти PASTA ZARA №4,500г')
     self.assertEqual('0.5 kg', product.get_package_key())
Beispiel #30
0
 def test_batat(self):
     product = Product(u'Картофель батат, 1,9-2,1кг')
     self.assertRaises(CategoryLookupError, product.get_category_key)