Пример #1
0
class CommodityTest(BaseTestCase):

    def set_up(self):
        self.commodity_suite = CommodityTestSuite(self.client, self.application)

    def testCommodityRestCRUD(self):
        """
        Проверяем CRUD номенклатуры
        """
        self.commodity()

    def commodity(self):
        """
        Тестируем создание/редактирование/получение/удаление номенклатуры.
        """

        COMS = (
            ((u"ЛТД", True, ""), (u"ЛТД2", True, u"1Т")),
            ((u"Вечерние челны", True, ""), (u"Веч. Челны", False, "")),
            ((u"Машинка", False, ""), (u"Машинка", False, u"25ИГР"))
        )

        with self.application.app_context():

            for com in COMS:
                #Тестируем создание
                name, numeric, thematic = com[0]
                name_new, numeric_new, thematic_new = com[1]
                data = self.commodity_suite._create_commodity(name, numeric, thematic)
                assert data.status_code, 200

                com = Commodity.query.filter(Commodity.name==name).one()
                self.assertEqual(com.numeric, numeric)
                self.assertEqual(com.thematic, thematic)

                #Тестируем получение
                data = self.commodity_suite._get_commodity(com.id)
                self.assertEqual(data.status_code, 200)
                js = self.commodity_suite._deserialize(data.data)
                self.assertEqual(js["id"], com.id)
                self.assertEqual(js['name'], com.name)
                self.assertEqual(js['numeric'], com.numeric)
                self.assertEqual(js['thematic'], com.thematic)
                #Тестируем редактирование
                data = self.commodity_suite._update_commodity(com.id, name_new, numeric_new, thematic_new)
                com = Commodity.query.get(com.id)
                self.assertEqual(data.status_code, 200)
                self.assertEqual(com.name, name_new)
                self.assertEqual(com.numeric, numeric_new)
                self.assertEqual(com.thematic, thematic_new)

                data = self.commodity_suite._get_commodity_all()
                self.assertEqual(data.status_code, 200)

                #Тестируем удаление
                data = self.commodity_suite._delete_commodity(com.id)
                self.assertEqual(data.status_code, 200)
                self.assertIsNone(Commodity.query.get(com.id))