Exemplo n.º 1
0
    def test_returns_only_over_a_week_old_results(self):
        two_weeks_ago = datetime.datetime.now() - datetime.timedelta(days=14)
        unused_qr = query_result_factory.create(retrieved_at=two_weeks_ago)
        new_unused_qr = query_result_factory.create()

        self.assertIn(unused_qr, models.QueryResult.unused())
        self.assertNotIn(new_unused_qr, models.QueryResult.unused())
Exemplo n.º 2
0
    def test_returns_only_over_a_week_old_results(self):
        two_weeks_ago = datetime.datetime.now() - datetime.timedelta(days=14)
        unused_qr = query_result_factory.create(retrieved_at=two_weeks_ago)
        new_unused_qr = query_result_factory.create()

        self.assertIn(unused_qr, models.QueryResult.unused())
        self.assertNotIn(new_unused_qr, models.QueryResult.unused())
Exemplo n.º 3
0
    def test_returns_only_unused_query_results(self):
        two_weeks_ago = datetime.datetime.now() - datetime.timedelta(days=14)
        qr = query_result_factory.create()
        query = query_factory.create(latest_query_data=qr)
        unused_qr = query_result_factory.create(retrieved_at=two_weeks_ago)

        self.assertIn(unused_qr, models.QueryResult.unused())
        self.assertNotIn(qr, models.QueryResult.unused())
Exemplo n.º 4
0
    def test_returns_only_unused_query_results(self):
        two_weeks_ago = datetime.datetime.now() - datetime.timedelta(days=14)
        qr = query_result_factory.create()
        query = query_factory.create(latest_query_data=qr)
        unused_qr = query_result_factory.create(retrieved_at=two_weeks_ago)

        self.assertIn(unused_qr, models.QueryResult.unused())
        self.assertNotIn(qr, models.QueryResult.unused())
Exemplo n.º 5
0
    def test_get_latest_returns_the_most_recent_result(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(seconds=30)
        old_qr = query_result_factory.create(retrieved_at=yesterday)
        qr = query_result_factory.create()

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, 60)

        self.assertEqual(found_query_result.id, qr.id)
Exemplo n.º 6
0
    def test_get_latest_returns_the_most_recent_result(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(seconds=30)
        old_qr = query_result_factory.create(retrieved_at=yesterday)
        qr = query_result_factory.create()

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, 60)

        self.assertEqual(found_query_result.id, qr.id)
Exemplo n.º 7
0
    def test_get_latest_returns_the_last_cached_result_for_negative_ttl(self):
        yesterday = datetime.datetime.now() + datetime.timedelta(days=-100)
        very_old = query_result_factory.create(retrieved_at=yesterday)

        yesterday = datetime.datetime.now() + datetime.timedelta(days=-1)
        qr = query_result_factory.create(retrieved_at=yesterday)
        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, -1)

        self.assertEqual(found_query_result.id, qr.id)
Exemplo n.º 8
0
    def test_get_latest_returns_the_last_cached_result_for_negative_ttl(self):
        yesterday = datetime.datetime.now() + datetime.timedelta(days=-100)
        very_old = query_result_factory.create(retrieved_at=yesterday)

        yesterday = datetime.datetime.now() + datetime.timedelta(days=-1)
        qr = query_result_factory.create(retrieved_at=yesterday)
        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, -1)

        self.assertEqual(found_query_result.id, qr.id)
Exemplo n.º 9
0
    def test_get_latest_doesnt_return_if_ttl_expired(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
        qr = query_result_factory.create(retrieved_at=yesterday)

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, ttl=60)

        self.assertIsNone(found_query_result)
Exemplo n.º 10
0
    def test_get_latest_returns_if_ttl_not_expired(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(seconds=30)
        qr = query_result_factory.create(retrieved_at=yesterday)

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, max_age=120)

        self.assertEqual(found_query_result, qr)
Exemplo n.º 11
0
    def test_get_latest_doesnt_return_if_ttl_expired(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
        qr = query_result_factory.create(retrieved_at=yesterday)

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, max_age=60)

        self.assertIsNone(found_query_result)
Exemplo n.º 12
0
    def test_get_latest_returns_if_ttl_not_expired(self):
        yesterday = datetime.datetime.now() - datetime.timedelta(seconds=30)
        qr = query_result_factory.create(retrieved_at=yesterday)

        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, ttl=120)

        self.assertEqual(found_query_result, qr)
Exemplo n.º 13
0
    def test_get_latest_doesnt_return_query_from_different_data_source(self):
        qr = query_result_factory.create()
        data_source = data_source_factory.create()
        found_query_result = models.QueryResult.get_latest(
            data_source, qr.query, 60)

        self.assertIsNone(found_query_result)
Exemplo n.º 14
0
    def test_outdated_queries_works_with_specific_time_schedule(self):
        half_an_hour_ago = utcnow() - datetime.timedelta(minutes=30)
        query = query_factory.create(schedule=half_an_hour_ago.strftime('%H:%M'))
        query_result = query_result_factory.create(query=query, retrieved_at=half_an_hour_ago-datetime.timedelta(days=1))
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertIn(query, queries)
Exemplo n.º 15
0
    def test_outdated_queries_works_with_specific_time_schedule(self):
        half_an_hour_ago = utcnow() - datetime.timedelta(minutes=30)
        query = query_factory.create(schedule=half_an_hour_ago.strftime('%H:%M'))
        query_result = query_result_factory.create(query=query, retrieved_at=half_an_hour_ago-datetime.timedelta(days=1))
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertIn(query, queries)
Exemplo n.º 16
0
    def test_outdated_queries_works_with_ttl_based_schedule(self):
        two_hours_ago = datetime.datetime.now() - datetime.timedelta(hours=2)
        query = query_factory.create(schedule="3600")
        query_result = query_result_factory.create(query=query, retrieved_at=two_hours_ago)
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertIn(query, queries)
Exemplo n.º 17
0
    def test_skips_fresh_queries(self):
        half_an_hour_ago = datetime.datetime.now() - datetime.timedelta(minutes=30)
        query = query_factory.create(schedule="3600")
        query_result = query_result_factory.create(query=query, retrieved_at=half_an_hour_ago)
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertNotIn(query, queries)
Exemplo n.º 18
0
    def test_skips_fresh_queries(self):
        half_an_hour_ago = datetime.datetime.now() - datetime.timedelta(minutes=30)
        query = query_factory.create(schedule="3600")
        query_result = query_result_factory.create(query=query, retrieved_at=half_an_hour_ago)
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertNotIn(query, queries)
Exemplo n.º 19
0
    def test_outdated_queries_works_with_ttl_based_schedule(self):
        two_hours_ago = datetime.datetime.now() - datetime.timedelta(hours=2)
        query = query_factory.create(schedule="3600")
        query_result = query_result_factory.create(query=query, retrieved_at=two_hours_ago)
        query.latest_query_data = query_result
        query.save()

        queries = models.Query.outdated_queries()
        self.assertIn(query, queries)
Exemplo n.º 20
0
    def test_get_latest_returns_when_found(self):
        qr = query_result_factory.create()
        found_query_result = models.QueryResult.get_latest(
            qr.data_source, qr.query, 60)

        self.assertEqual(qr, found_query_result)
Exemplo n.º 21
0
    def test_get_latest_works_with_data_source_id(self):
        qr = query_result_factory.create()
        found_query_result = models.QueryResult.get_latest(
            qr.data_source.id, qr.query, 60)

        self.assertEqual(qr, found_query_result)
Exemplo n.º 22
0
    def test_get_latest_works_with_data_source_id(self):
        qr = query_result_factory.create()
        found_query_result = models.QueryResult.get_latest(qr.data_source.id, qr.query, 60)

        self.assertEqual(qr, found_query_result)
Exemplo n.º 23
0
    def test_get_latest_returns_when_found(self):
        qr = query_result_factory.create()
        found_query_result = models.QueryResult.get_latest(qr.data_source, qr.query, 60)

        self.assertEqual(qr, found_query_result)
Exemplo n.º 24
0
    def test_get_latest_doesnt_return_query_from_different_data_source(self):
        qr = query_result_factory.create()
        data_source = data_source_factory.create()
        found_query_result = models.QueryResult.get_latest(data_source, qr.query, 60)

        self.assertIsNone(found_query_result)