3232
3333from clgraph import RecursiveLineageBuilder , SQLColumnTracer
3434
35-
3635# ============================================================================
3736# Test Group 1: INNER JOIN
3837# ============================================================================
@@ -56,10 +55,7 @@ def test_inner_join_columns_from_both_tables(self):
5655 assert "output.order_id" in graph .nodes
5756 assert "output.amount" in graph .nodes
5857
59- edges_dict = {
60- (e .from_node .full_name , e .to_node .full_name ): e
61- for e in graph .edges
62- }
58+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
6359 assert ("users.id" , "output.id" ) in edges_dict
6460 assert ("users.name" , "output.name" ) in edges_dict
6561 assert ("orders.order_id" , "output.order_id" ) in edges_dict
@@ -103,10 +99,7 @@ def test_left_join_nullable_side_columns_tracked(self):
10399 assert "output.name" in graph .nodes
104100 assert "output.bio" in graph .nodes
105101
106- edges_dict = {
107- (e .from_node .full_name , e .to_node .full_name ): e
108- for e in graph .edges
109- }
102+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
110103 assert ("users.id" , "output.id" ) in edges_dict
111104 assert ("profiles.bio" , "output.bio" ) in edges_dict
112105
@@ -145,10 +138,7 @@ def test_right_join_columns_tracked(self):
145138 assert "output.order_id" in graph .nodes
146139 assert "output.amount" in graph .nodes
147140
148- edges_dict = {
149- (e .from_node .full_name , e .to_node .full_name ): e
150- for e in graph .edges
151- }
141+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
152142 assert ("users.name" , "output.name" ) in edges_dict
153143 assert ("orders.order_id" , "output.order_id" ) in edges_dict
154144
@@ -188,10 +178,7 @@ def test_full_outer_join_both_sides_tracked(self):
188178 assert "output.order_id" in graph .nodes
189179 assert "output.amount" in graph .nodes
190180
191- edges_dict = {
192- (e .from_node .full_name , e .to_node .full_name ): e
193- for e in graph .edges
194- }
181+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
195182 assert ("users.id" , "output.id" ) in edges_dict
196183 assert ("orders.amount" , "output.amount" ) in edges_dict
197184
@@ -232,10 +219,7 @@ def test_cross_join_no_on_clause(self):
232219 assert "output.name" in graph .nodes
233220 assert "output.color_name" in graph .nodes
234221
235- edges_dict = {
236- (e .from_node .full_name , e .to_node .full_name ): e
237- for e in graph .edges
238- }
222+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
239223 assert ("users.name" , "output.name" ) in edges_dict
240224 assert ("colors.color_name" , "output.color_name" ) in edges_dict
241225
@@ -262,12 +246,8 @@ def test_self_join_with_aliases(self):
262246 assert "output.manager" in graph .nodes
263247
264248 # Both output columns trace back to employees.name
265- employee_edges = [
266- e for e in graph .edges if e .to_node .full_name == "output.employee"
267- ]
268- manager_edges = [
269- e for e in graph .edges if e .to_node .full_name == "output.manager"
270- ]
249+ employee_edges = [e for e in graph .edges if e .to_node .full_name == "output.employee" ]
250+ manager_edges = [e for e in graph .edges if e .to_node .full_name == "output.manager" ]
271251
272252 assert len (employee_edges ) > 0
273253 assert len (manager_edges ) > 0
@@ -311,10 +291,7 @@ def test_three_table_join_chain(self):
311291 assert "output.order_id" in graph .nodes
312292 assert "output.product_name" in graph .nodes
313293
314- edges_dict = {
315- (e .from_node .full_name , e .to_node .full_name ): e
316- for e in graph .edges
317- }
294+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
318295 assert ("users.name" , "output.name" ) in edges_dict
319296 assert ("orders.order_id" , "output.order_id" ) in edges_dict
320297 assert ("products.product_name" , "output.product_name" ) in edges_dict
@@ -362,9 +339,7 @@ def test_join_against_subquery(self):
362339 assert "output.total_amount" in graph .nodes
363340
364341 # total_amount should trace back through the subquery to orders.amount
365- total_edges = [
366- e for e in graph .edges if e .to_node .full_name == "output.total_amount"
367- ]
342+ total_edges = [e for e in graph .edges if e .to_node .full_name == "output.total_amount" ]
368343 assert len (total_edges ) > 0
369344
370345 def test_join_subquery_backward_lineage (self ):
@@ -406,12 +381,7 @@ def test_on_clause_columns_in_graph(self):
406381 assert "output.name" in graph .nodes
407382 assert "output.amount" in graph .nodes
408383
409- # The join-key columns should appear as source nodes in the graph
410- all_source_names = {
411- e .from_node .full_name for e in graph .edges
412- }
413- # users.id and orders.user_id are join keys; at minimum the selected
414- # columns (users.name, orders.amount) must have edges
384+ # At minimum the selected columns (users.name, orders.amount) must have edges
415385 assert ("users.name" , "output.name" ) in {
416386 (e .from_node .full_name , e .to_node .full_name ) for e in graph .edges
417387 }
@@ -447,10 +417,7 @@ def test_inner_join_lineage_per_dialect(self, dialect):
447417 assert "output.order_id" in graph .nodes
448418 assert "output.amount" in graph .nodes
449419
450- edges_dict = {
451- (e .from_node .full_name , e .to_node .full_name ): e
452- for e in graph .edges
453- }
420+ edges_dict = {(e .from_node .full_name , e .to_node .full_name ): e for e in graph .edges }
454421 assert ("users.id" , "output.id" ) in edges_dict
455422 assert ("orders.amount" , "output.amount" ) in edges_dict
456423
0 commit comments