def test_period_range(): range = period_range(date(2013, 4, 1), date(2013, 4, 7)) assert_that(range, only_contains( (date(2013, 4, 1), date(2013, 4, 7)) )) another_range = period_range(date(2013, 4, 1), date(2013, 4, 21)) assert_that(another_range, only_contains( (date(2013, 4, 1), date(2013, 4, 7)), (date(2013, 4, 8), date(2013, 4, 14)), (date(2013, 4, 15), date(2013, 4, 21)), ))
def test_period_range(): range = period_range(date(2013, 4, 1), date(2013, 4, 7)) assert_that(range, only_contains((date(2013, 4, 1), date(2013, 4, 7)))) another_range = period_range(date(2013, 4, 1), date(2013, 4, 21)) assert_that( another_range, only_contains( (date(2013, 4, 1), date(2013, 4, 7)), (date(2013, 4, 8), date(2013, 4, 14)), (date(2013, 4, 15), date(2013, 4, 21)), ))
def run(config_path, start_date=None, end_date=None): try: config = load_json(config_path) logging.info("Configuration (%s): %s" % (config_path, pretty_print(config))) # TODO: default dates should depend on the time period period_start = parse_date(start_date) or a_week_ago() period_end = parse_date(end_date) or a_week_ago() logging.info("Querying GA for data in the period: %s - %s" % (str(period_start), str(period_end))) credentials = get_credentials() client = _create_client(credentials) mappings = config.get("mappings", {}) documents = [] for start, end in period_range(period_start, period_end): response = query_ga(client, config["query"], start, end) documents += [ build_document(item, config["dataType"], start, mappings) for item in response ] if any(documents): send_data(documents, config["target"]) else: logging.info("No data returned with current configuration") except HTTPError: logging.exception("Unable to send data to target") exit(-3) except GapyError: logging.exception("Unable to retrieve data from Google Analytics") exit(-2) except Exception as e: logging.exception(e) exit(-1)
def test_period_range_returns_the_containing_week_when_start_equals_end(): range = period_range(date(2013, 4, 8), date(2013, 4, 8)) assert_that(range, only_contains((date(2013, 4, 8), date(2013, 4, 14))))
def test_period_range_fails_when_end_is_before_start(): list(period_range(date(2013, 4, 8), date(2013, 4, 1)))
def test_period_range_adjusts_dates(): range = period_range(date(2013, 4, 3), date(2013, 4, 10)) assert_that( range, only_contains((date(2013, 4, 1), date(2013, 4, 7)), (date(2013, 4, 8), date(2013, 4, 14))))
def test_period_range_returns_the_containing_week_when_start_equals_end(): range = period_range(date(2013, 4, 8), date(2013, 4, 8)) assert_that(range, only_contains( (date(2013, 4, 8), date(2013, 4, 14)) ))
def test_period_range_adjusts_dates(): range = period_range(date(2013, 4, 3), date(2013, 4, 10)) assert_that(range, only_contains( (date(2013, 4, 1), date(2013, 4, 7)), (date(2013, 4, 8), date(2013, 4, 14)) ))