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