def test_sanitize_long_date(self): self.assertEqual(Item.sanitize_long_date(None, '', True), None) self.assertEqual(Item.sanitize_long_date(datetime(2020, 1, 1, 11, 20, 36), '', False), '01.01.2020 11:20:36') self.assertEqual(Item.sanitize_long_date('01.01.2020 11:20:36', '', False), '01.01.2020 11:20:36') with self.assertRaises(ValueError): Item.sanitize_long_date(None, '', False) Item.sanitize_long_date('01/01/2020', '', True) Item.sanitize_long_date('01.01.2020 11/22/22', '', False)
class StatisticActions(StatisticBase): """ Statistics by actions """ SCOPE = 'statistics' ORDERING = ('action', 'banner', 'banner_id', 'campaign', 'cart', 'click_date', 'conv_time', 'datetime', 'payment', 'status', 'subid', 'subid1', 'subid2', 'subid3', 'subid4', 'website') FILTERING = { 'date_start': lambda x: Item.sanitize_date(x, 'date_start', blank=True), 'date_end': lambda x: Item.sanitize_date(x, 'date_end', blank=True), 'closing_date_start': lambda x: Item.sanitize_date(x, 'closing_date_start', blank=True), 'closing_date_end': lambda x: Item.sanitize_date(x, 'closing_date_end', blank=True), 'status_updated_start': lambda x: Item.sanitize_long_date( x, 'status_updated_start', blank=True), 'status_updated_end': lambda x: Item.sanitize_long_date(x, 'status_updated_end', blank=True), 'website': lambda x: Item.sanitize_integer_value(x, 'website', blank=True), 'campaign': lambda x: Item.sanitize_integer_value(x, 'campaign', blank=True), 'subid': lambda x: StatisticBase.check_sub_id(x), 'subid1': lambda x: StatisticBase.check_sub_id(x), 'subid2': lambda x: StatisticBase.check_sub_id(x), 'subid3': lambda x: StatisticBase.check_sub_id(x), 'subid4': lambda x: StatisticBase.check_sub_id(x), 'source': lambda x: StatisticBase.check_sources(x), 'status': lambda x: StatisticBase.check_status(x), 'keyword': lambda x: Item.sanitize_string_value(x, 'keyword', blank=True), 'action': lambda x: Item.sanitize_string_value(x, 'action', blank=True), 'action_type': lambda x: StatisticBase.check_actions_type(x), 'action_id': lambda x: Item.sanitize_integer_value(x, 'action_id', blank=True), } URL = Item.prepare_url('statistics/actions') def get(self, **kwargs): """ Args: date_start (date) date_end (date) closing_date_start (date) closing_date_end (date) status_updated_start (date) status_updated_end (date) website (int) campaign (int) subid (str) subid1 (str) subid2 (str) subid3 (str) subid4 (str) source (str) status (int) keyword (str) action (str) action_type (str) action_id (int) limit (int) offset (int) order_by (list of int) """ return super(StatisticActions, self).get(self.URL, **kwargs)