def test_query_2(self): '''test query by available on''' promo1 = Promotion(1) promo2 = Promotion(2) promo1.deserialize( {'start_date': '2017-01-01 00:00:00', 'end_date': '2019-01-01 00:00:00'}) promo2.deserialize( {'start_date': '2018-01-01 00:00:00', 'end_date': '2020-01-01 00:00:00'}) promo1.save() promo2.save() test = Promotion.find_by_conditions( {'available_on': '2016-01-01 00:00:00'}) self.assertIsInstance(test, list) self.assertEqual(len(test), 0) test2 = Promotion.find_by_conditions( {'available_on': '2017-06-01 00:00:00'}) self.assertIsInstance(test2, list) self.assertEqual(len(test2), 1) self.assertEqual(test2[0].id, 1) test3 = Promotion.find_by_conditions( {'available_on': '2018-06-01 00:00:00'}) self.assertIsInstance(test3, list) self.assertEqual(len(test3), 2) test4 = Promotion.find_by_conditions( {'available_on': '2019-06-01 00:00:00'}) self.assertIsInstance(test4, list) self.assertEqual(len(test4), 1) self.assertEqual(test4[0].id, 2)
def test_query(self): '''test query by promo type''' promo1 = Promotion(1) promo2 = Promotion(2) promo1.deserialize({'promo_type': '%'}) promo2.deserialize({'promo_type': '$'}) promo1.save() promo2.save() test = Promotion.find_by_conditions({'promo_type': '$'}) self.assertIsInstance(test, list) self.assertEqual(len(test), 1) self.assertEqual(test[0].id, 2) test2 = Promotion.find_by_conditions({'promo_type': '%'}) self.assertIsInstance(test, list) self.assertEqual(len(test), 1) self.assertEqual(test2[0].id, 1)
def test_query_3(self): '''test query by multiple conditions''' promo1 = Promotion(1) promo2 = Promotion(2) promo1.deserialize( {'promo_type': '%', 'start_date': '2017-01-01 00:00:00', 'end_date': '2019-01-01 00:00:00'}) promo2.deserialize( {'promo_type': '$', 'start_date': '2018-01-01 00:00:00', 'end_date': '2020-01-01 00:00:00'}) promo1.save() promo2.save() test = Promotion.find_by_conditions( {'promo_type': '$', 'available_on': '2017-06-01 00:00:00'}) self.assertIsInstance(test, list) self.assertEqual(len(test), 0) test2 = Promotion.find_by_conditions( {'promo_type': '%', 'available_on': '2018-06-01 00:00:00'}) self.assertIsInstance(test2, list) self.assertEqual(len(test2), 1) self.assertEqual(test2[0].id, 1)
def get(self): """ Returns all of the Promotions """ conditions = request.values.to_dict() payload = Promotion.all() if conditions: payload = Promotion.find_by_conditions(conditions) payload = [promo.serialize() for promo in payload] flask_app.logger.info("GET promotions success") return payload, 200