예제 #1
0
def test_calculate_dependency_graph():
    """
    Test that calculate_dependency_graph() runs and the returned graph has some correct entries.
    """
    query = daily_location("2016-01-01")
    G = calculate_dependency_graph(query, analyse=True)
    sd = EventTableSubset(
        start="2016-01-01",
        stop="2016-01-02",
        columns=["msisdn", "datetime", "location_id"],
    )
    assert f"x{sd.query_id}" in G.nodes()
    assert G.nodes[f"x{sd.query_id}"]["query_object"].query_id == sd.query_id
예제 #2
0
def test_store_queries_in_order():
    """
    Test that store_queries_in_order() stores each query's dependencies before storing that query itself.
    """
    class QueryWithStoreAssertions(DummyQuery):
        def store(self):
            for query in self.dependencies:
                assert query.is_stored
            super().store()

    dummy1 = QueryWithStoreAssertions(dummy_param=["dummy1"])
    dummy2 = QueryWithStoreAssertions(dummy_param=["dummy2"])
    dummy3 = QueryWithStoreAssertions(dummy_param=["dummy3", dummy1, dummy2])
    dummy4 = QueryWithStoreAssertions(dummy_param=["dummy4", dummy2])
    dummy5 = QueryWithStoreAssertions(dummy_param=["dummy5", dummy3, dummy4])
    graph = calculate_dependency_graph(dummy5)
    store_queries_in_order(graph)