def test_date_generator_single(self): start_date = datetime.date(year=2016, month=1, day=1) end_date = datetime.date(year=2016, month=1, day=5) delta = 1 result = [] for s, e in date_generator(start_date, end_date, delta): self.assertIsInstance(s, datetime.date) self.assertIsInstance(e, datetime.date) result.append((s, e)) self.assertEquals(len(result), 5)
def direct(start_date=None, end_date=None, *args): data = DirectData(CONFIG_CODE, 1, LOGGER_TYPE_CODE) for model in MODELS: api = Api(model=model, **data._asdict()) for delta_start_date, delta_end_date in date_generator( start_date, end_date, DELTA_DAYS): response = api.request(date=delta_start_date) api.load(response) return data
def direct_wholesale_03(start_date=None, end_date=None, *args, **kwargs): data = DirectData('COG03', 1, LOGGER_TYPE_CODE) for model in MODELS: wholesale_api = WholeSaleApi03(model=model, market_type='F', **data._asdict()) # this api only provide one day filter for delta_start_date, delta_end_date in date_generator(start_date, end_date, 1): response = wholesale_api.request(date=delta_start_date) wholesale_api.load(response) return data
def direct_origin(start_date=None, end_date=None, *args, **kwargs): data = DirectData('COG06', 2, LOGGER_TYPE_CODE) for model in MODELS: origin_api = OriginApi(model=model, **data._asdict()) for obj in product_generator(model, type=2, **kwargs): for delta_start_date, delta_end_date in date_generator(start_date, end_date, ORIGIN_DELTA_DAYS): response = origin_api.request(start_date=delta_start_date, end_date=delta_end_date, name=obj.code) origin_api.load(response) return data
def direct_wholesale_06(start_date=None, end_date=None, *args, **kwargs): data = DirectData('COG06', 1, LOGGER_TYPE_CODE) for model in MODELS: wholesale_api = WholeSaleApi06(model=model, **data._asdict()) for obj in product_generator(model, type=1, **kwargs): for delta_start_date, delta_end_date in date_generator(start_date, end_date, WHOLESALE_DELTA_DAYS): response = wholesale_api.request(start_date=delta_start_date, end_date=delta_end_date, code=obj.code) wholesale_api.load(response) return data
def direct_origin(start_date=None, end_date=None, *args, **kwargs): data = DirectData(CONFIG_CODE, 2, LOGGER_TYPE_CODE) for model in MODELS: origin_api = OriginApi(model=model, **data._asdict()) for obj in product_generator(model, type=2, **kwargs): for delta_start_date, delta_end_date in date_generator(start_date, end_date, ORIGIN_DELTA_DAYS): response = origin_api.request(start_date=delta_start_date, end_date=delta_end_date, code=obj.code) origin_api.load(response) # sleep for that poor api service... time.sleep(10) return data
def direct_wholesale(start_date=None, end_date=None, *args, **kwargs): data = DirectData(CONFIG_CODE, 1, LOGGER_TYPE_CODE) for model in MODELS: wholesale_api = WholeSaleApi(model=model, **data._asdict()) for obj in product_generator(model): if obj.type.id == 1: for delta_start_date, delta_end_date in date_generator( start_date, end_date, WHOLESALE_DELTA_DAYS): response = wholesale_api.request( start_date=delta_start_date, end_date=delta_end_date, name=obj.name) wholesale_api.load(response) return data
def direct_wholesale_04(start_date=None, end_date=None, *args, **kwargs): data = DirectData('COG04', 1, LOGGER_TYPE_CODE) for model in MODELS: # Provide sum_to_product to calculate detail objects to one DailyTran wholesale_api = WholeSaleApi(model=model, market_type='L', sum_to_product='L', **data._asdict()) # This api only provide one day filter for delta_start_date, delta_end_date in date_generator( start_date, end_date, WHOLESALE_DELTA_DAYS): response = wholesale_api.request(date=delta_start_date) wholesale_api.load(response) return data