Skip to content

Commit 1df0596

Browse files
committed
test: resolve the project root from python/ node fixtures
1 parent e387c22 commit 1df0596

7 files changed

Lines changed: 47 additions & 47 deletions

File tree

‎tests/e2e/src/sqlbuild/cli/commands/main/build/no_tests_no_audits/test_build_no_tests_no_audits.py‎

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ def test_given_factory_generated_nodes_when_running_commands_then_lifecycle_succ
221221
from sqlbuild.tasks import task
222222
223223
224-
PROJECT_DIR = Path(__file__).parents[1]
224+
PROJECT_DIR = Path(__file__).parents[2]
225225
226226
227227
@factory
@@ -426,7 +426,7 @@ def test_given_task_selector_when_running_run_then_task_executes(
426426
"from sqlbuild.tasks import task\n\n"
427427
"@task\n"
428428
"def prepare_orders(ctx):\n"
429-
" Path(__file__).parents[1].joinpath('task_marker.txt').write_text('ran')\n"
429+
" Path(__file__).parents[2].joinpath('task_marker.txt').write_text('ran')\n"
430430
" return ctx.result(payload={'status': 'ok'})\n"
431431
),
432432
},
@@ -481,7 +481,7 @@ def test_given_asset_selector_when_running_run_then_asset_executes(
481481
"from sqlbuild.assets import asset\n\n"
482482
"@asset\n"
483483
"def prepared_orders(ctx):\n"
484-
" Path(__file__).parents[1].joinpath('asset_marker.txt').write_text('ran')\n"
484+
" Path(__file__).parents[2].joinpath('asset_marker.txt').write_text('ran')\n"
485485
" return ctx.result(payload={'status': 'ok'}, materialized=True)\n"
486486
),
487487
},
@@ -675,7 +675,7 @@ def test_given_task_loader_source_model_chain_when_running_model_then_task_runs_
675675
"from sqlbuild.tasks import task\n\n"
676676
"@task\n"
677677
"def prepare_orders(ctx):\n"
678-
" Path(__file__).parents[1].joinpath('orders_ready.txt').write_text('ready')\n"
678+
" Path(__file__).parents[2].joinpath('orders_ready.txt').write_text('ready')\n"
679679
" return ctx.result(metadata={'prepared': True})\n"
680680
),
681681
"python/loaders/orders.py": (
@@ -684,7 +684,7 @@ def test_given_task_loader_source_model_chain_when_running_model_then_task_runs_
684684
"from python.tasks.orders import prepare_orders\n\n"
685685
"@loader(depends_on=(prepare_orders,))\n"
686686
"def raw_orders(ctx):\n"
687-
" marker = Path(__file__).parents[1].joinpath('orders_ready.txt')\n"
687+
" marker = Path(__file__).parents[2].joinpath('orders_ready.txt')\n"
688688
" if not marker.exists():\n"
689689
" raise RuntimeError('orders were not prepared')\n"
690690
" return [{'order_id': 1, 'amount_cents': 100}]\n"
@@ -769,7 +769,7 @@ def test_given_model_and_task_selector_when_running_run_then_task_can_read_built
769769
"@task(depends_on=model('fact_orders'))\n"
770770
"def summarize_orders(ctx):\n"
771771
" rows = ctx.query('SELECT COUNT(*) FROM fact_orders').fetchall()[0][0]\n"
772-
" Path(__file__).parents[1].joinpath('summary.txt').write_text(str(rows))\n"
772+
" Path(__file__).parents[2].joinpath('summary.txt').write_text(str(rows))\n"
773773
" return ctx.result(metadata={'rows': rows})\n"
774774
),
775775
},
@@ -840,7 +840,7 @@ def test_given_asset_depends_on_terminal_model_when_running_run_then_asset_reads
840840
"@asset(depends_on=model('fact_orders'))\n"
841841
"def export_fact_orders(ctx):\n"
842842
" rows = ctx.query('SELECT COUNT(*) FROM fact_orders').fetchall()[0][0]\n"
843-
" Path(__file__).parents[1].joinpath('export.txt').write_text(str(rows))\n"
843+
" Path(__file__).parents[2].joinpath('export.txt').write_text(str(rows))\n"
844844
" return ctx.result(metadata={'rows': rows}, materialized=True)\n"
845845
),
846846
},
@@ -906,7 +906,7 @@ def test_given_task_asset_task_chain_when_running_final_task_then_chain_executes
906906
"@task(depends_on=publish_orders)\n"
907907
"def notify_orders(ctx):\n"
908908
" metadata = ctx.result_of(node_function=publish_orders).metadata\n"
909-
" output = Path(__file__).parents[1].joinpath('notify.txt')\n"
909+
" output = Path(__file__).parents[2].joinpath('notify.txt')\n"
910910
" output.write_text(str(metadata['published']))\n"
911911
" return ctx.result()\n"
912912
),
@@ -1136,11 +1136,11 @@ def test_given_independent_python_and_sql_selectors_when_running_run_then_all_br
11361136
"from sqlbuild.tasks import task\n\n"
11371137
"@task\n"
11381138
"def branch_a(ctx):\n"
1139-
" Path(__file__).parents[1].joinpath('branch_a.txt').write_text('a')\n"
1139+
" Path(__file__).parents[2].joinpath('branch_a.txt').write_text('a')\n"
11401140
" return ctx.result()\n\n"
11411141
"@task\n"
11421142
"def branch_b(ctx):\n"
1143-
" Path(__file__).parents[1].joinpath('branch_b.txt').write_text('b')\n"
1143+
" Path(__file__).parents[2].joinpath('branch_b.txt').write_text('b')\n"
11441144
" return ctx.result()\n"
11451145
),
11461146
},
@@ -1587,7 +1587,7 @@ def test_given_loader_task_loader_chain_when_running_model_then_ingress_orders_c
15871587
"@task(depends_on=load_window_orders)\n"
15881588
"def prepare_raw_orders(ctx):\n"
15891589
" rows = ctx.query('SELECT COUNT(*) FROM window_orders').fetchall()[0][0]\n"
1590-
" Path(__file__).parents[1].joinpath('prepared.txt').write_text(str(rows))\n"
1590+
" Path(__file__).parents[2].joinpath('prepared.txt').write_text(str(rows))\n"
15911591
" return ctx.result(metadata={'rows': rows})\n"
15921592
),
15931593
"python/loaders/raw.py": (
@@ -1596,7 +1596,7 @@ def test_given_loader_task_loader_chain_when_running_model_then_ingress_orders_c
15961596
"from sqlbuild.loaders import loader\n\n"
15971597
"@loader(depends_on=(prepare_raw_orders,))\n"
15981598
"def raw_orders(ctx):\n"
1599-
" marker = Path(__file__).parents[1].joinpath('prepared.txt')\n"
1599+
" marker = Path(__file__).parents[2].joinpath('prepared.txt')\n"
16001600
" if marker.read_text() != '1':\n"
16011601
" raise RuntimeError('window orders were not prepared')\n"
16021602
" return [{'order_id': 1}]\n"
@@ -1669,7 +1669,7 @@ def test_given_task_asset_loader_chain_when_running_model_then_ingress_orders_ch
16691669
"@asset(depends_on=fetch_orders)\n"
16701670
"def publish_orders(ctx):\n"
16711671
" payload = ctx.result_of(node_function=fetch_orders).payload\n"
1672-
" marker = Path(__file__).parents[1].joinpath('asset_ready.txt')\n"
1672+
" marker = Path(__file__).parents[2].joinpath('asset_ready.txt')\n"
16731673
" marker.write_text(str(payload['order_id']))\n"
16741674
" return ctx.result(payload=payload, materialized=True)\n"
16751675
),
@@ -1679,7 +1679,7 @@ def test_given_task_asset_loader_chain_when_running_model_then_ingress_orders_ch
16791679
"from sqlbuild.loaders import loader\n\n"
16801680
"@loader(depends_on=(publish_orders,))\n"
16811681
"def raw_orders(ctx):\n"
1682-
" marker = Path(__file__).parents[1].joinpath('asset_ready.txt')\n"
1682+
" marker = Path(__file__).parents[2].joinpath('asset_ready.txt')\n"
16831683
" if marker.read_text() != '1':\n"
16841684
" raise RuntimeError('asset was not ready')\n"
16851685
" return [{'order_id': 1}]\n"
@@ -1756,7 +1756,7 @@ def test_given_loader_asset_loader_chain_when_running_model_then_ingress_orders_
17561756
"@asset(depends_on=load_window_orders)\n"
17571757
"def prepare_asset_orders(ctx):\n"
17581758
" rows = ctx.query('SELECT COUNT(*) FROM window_orders').fetchall()[0][0]\n"
1759-
" Path(__file__).parents[1].joinpath('asset_ready.txt').write_text(str(rows))\n"
1759+
" Path(__file__).parents[2].joinpath('asset_ready.txt').write_text(str(rows))\n"
17601760
" return ctx.result(metadata={'rows': rows}, materialized=True)\n"
17611761
),
17621762
"python/loaders/raw.py": (
@@ -1765,7 +1765,7 @@ def test_given_loader_asset_loader_chain_when_running_model_then_ingress_orders_
17651765
"from sqlbuild.loaders import loader\n\n"
17661766
"@loader(depends_on=(prepare_asset_orders,))\n"
17671767
"def raw_orders(ctx):\n"
1768-
" marker = Path(__file__).parents[1].joinpath('asset_ready.txt')\n"
1768+
" marker = Path(__file__).parents[2].joinpath('asset_ready.txt')\n"
17691769
" if marker.read_text() != '1':\n"
17701770
" raise RuntimeError('asset orders were not prepared')\n"
17711771
" return [{'order_id': 1}]\n"
@@ -1923,7 +1923,7 @@ def test_given_loader_task_asset_loader_model_task_asset_task_spine_when_running
19231923
"@asset(depends_on=prepare_orders)\n"
19241924
"def publish_prepared_orders(ctx):\n"
19251925
" payload = ctx.result_of(node_function=prepare_orders).payload\n"
1926-
" marker = Path(__file__).parents[1].joinpath('prepared_order_id.txt')\n"
1926+
" marker = Path(__file__).parents[2].joinpath('prepared_order_id.txt')\n"
19271927
" marker.write_text(str(payload['order_id']))\n"
19281928
" return ctx.result(payload=payload, materialized=True)\n"
19291929
),
@@ -1933,7 +1933,7 @@ def test_given_loader_task_asset_loader_model_task_asset_task_spine_when_running
19331933
"from sqlbuild.loaders import loader\n\n"
19341934
"@loader(depends_on=(publish_prepared_orders,))\n"
19351935
"def raw_orders(ctx):\n"
1936-
" marker = Path(__file__).parents[1].joinpath('prepared_order_id.txt')\n"
1936+
" marker = Path(__file__).parents[2].joinpath('prepared_order_id.txt')\n"
19371937
" return [{'order_id': int(marker.read_text())}]\n"
19381938
),
19391939
"sources/raw.yml": (
@@ -1971,7 +1971,7 @@ def test_given_loader_task_asset_loader_model_task_asset_task_spine_when_running
19711971
"@task(depends_on=export_fact_orders)\n"
19721972
"def notify_fact_orders(ctx):\n"
19731973
" payload = ctx.result_of(node_function=export_fact_orders).payload\n"
1974-
" output = Path(__file__).parents[1].joinpath('notify.txt')\n"
1974+
" output = Path(__file__).parents[2].joinpath('notify.txt')\n"
19751975
" output.write_text(str(payload['order_id']))\n"
19761976
" return ctx.result(metadata={'notified': True})\n"
19771977
),

‎tests/e2e/src/sqlbuild/cli/commands/main/build/test_build.py‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ def test_given_shared_downstream_failure_when_building_then_blocks_all_source_ap
922922
"from sqlbuild.tasks import task\n\n"
923923
"@task\n"
924924
"def prepare_orders(ctx):\n"
925-
" marker = Path(__file__).parents[1].joinpath('prepared.txt')\n"
925+
" marker = Path(__file__).parents[2].joinpath('prepared.txt')\n"
926926
" marker.write_text('prepared')\n"
927927
" return ctx.result(payload={'order_id': 3})\n"
928928
),
@@ -951,7 +951,7 @@ def test_given_shared_downstream_failure_when_building_then_blocks_all_source_ap
951951
"from sqlbuild.tasks import task\n\n"
952952
"@task(depends_on=model('fact_orders'))\n"
953953
"def profile_fact(ctx):\n"
954-
" marker = Path(__file__).parents[1].joinpath('profile.txt')\n"
954+
" marker = Path(__file__).parents[2].joinpath('profile.txt')\n"
955955
" marker.write_text('profiled')\n"
956956
" return ctx.result()\n"
957957
),
@@ -999,7 +999,7 @@ def test_given_shared_downstream_failure_when_building_then_blocks_all_source_ap
999999
"def profile_raw_orders(ctx):\n"
10001000
" relation = ctx.relation(source('raw_orders'))\n"
10011001
" value = ctx.query(f'SELECT order_id FROM {relation}').fetchall()[0][0]\n"
1002-
" marker = Path(__file__).parents[1].joinpath('source_profile.txt')\n"
1002+
" marker = Path(__file__).parents[2].joinpath('source_profile.txt')\n"
10031003
" marker.write_text(str(value))\n"
10041004
" return ctx.result(metadata={'source_order_id': value})\n"
10051005
),
@@ -1098,7 +1098,7 @@ def test_given_python_lifecycle_edge_case_when_building_then_direct_build_harden
10981098
"from sqlbuild.tasks import task\n\n"
10991099
"@task\n"
11001100
"def prepare_events(ctx):\n"
1101-
" marker = Path(__file__).parents[1].joinpath('prepared.txt')\n"
1101+
" marker = Path(__file__).parents[2].joinpath('prepared.txt')\n"
11021102
" marker.write_text('prepared')\n"
11031103
" return ctx.result()\n"
11041104
),
@@ -1366,7 +1366,7 @@ def test_given_python_sql_python_spine_when_building_then_orders_python_around_s
13661366
"@asset(depends_on=prepare_orders)\n"
13671367
"def publish_prepared_orders(ctx):\n"
13681368
" payload = ctx.result_of(node_function=prepare_orders).payload\n"
1369-
" marker = Path(__file__).parents[1].joinpath('prepared_order_id.txt')\n"
1369+
" marker = Path(__file__).parents[2].joinpath('prepared_order_id.txt')\n"
13701370
" marker.write_text(str(payload['order_id']))\n"
13711371
" return ctx.result(payload=payload, materialized=True)\n"
13721372
),
@@ -1376,7 +1376,7 @@ def test_given_python_sql_python_spine_when_building_then_orders_python_around_s
13761376
"from sqlbuild.loaders import loader\n\n"
13771377
"@loader(depends_on=(publish_prepared_orders,))\n"
13781378
"def raw_orders(ctx):\n"
1379-
" marker = Path(__file__).parents[1].joinpath('prepared_order_id.txt')\n"
1379+
" marker = Path(__file__).parents[2].joinpath('prepared_order_id.txt')\n"
13801380
" return [{'order_id': int(marker.read_text())}]\n"
13811381
),
13821382
"sources/raw.yml": (
@@ -1415,7 +1415,7 @@ def test_given_python_sql_python_spine_when_building_then_orders_python_around_s
14151415
"@task(depends_on=export_fact_orders)\n"
14161416
"def notify_fact_orders(ctx):\n"
14171417
" payload = ctx.result_of(node_function=export_fact_orders).payload\n"
1418-
" output = Path(__file__).parents[1].joinpath('notify.txt')\n"
1418+
" output = Path(__file__).parents[2].joinpath('notify.txt')\n"
14191419
" output.write_text(str(payload['order_id']))\n"
14201420
" return ctx.result(metadata={'notified': True})\n"
14211421
),
@@ -1561,7 +1561,7 @@ def test_given_prior_python_task_result_when_later_task_reads_result_then_uses_p
15611561
f" failed = ctx.result_of(node_function=produce_result, run_id='{failed_run_id}')\n"
15621562
" history = ctx.results_of(node_function=produce_result, limit=2)\n"
15631563
" values = ','.join(str(item.payload['value']) for item in history)\n"
1564-
" output = Path(__file__).parents[1].joinpath('consumed.txt')\n"
1564+
" output = Path(__file__).parents[2].joinpath('consumed.txt')\n"
15651565
" output.write_text(\n"
15661566
" f\"{latest.payload['value']}:{first.payload['value']}:\"\n"
15671567
' f"{failed.status}:{failed.payload is None}:{values}:"\n'
@@ -1665,7 +1665,7 @@ def test_given_prior_loader_result_when_later_task_reads_result_then_uses_loader
16651665
"@task\n"
16661666
"def consume_loader_result(ctx):\n"
16671667
" result = ctx.result_of(node_function=raw_events)\n"
1668-
" output = Path(__file__).parents[1].joinpath('loader_result.txt')\n"
1668+
" output = Path(__file__).parents[2].joinpath('loader_result.txt')\n"
16691669
" output.write_text(\n"
16701670
" f\"{result.metadata['loader_name']}:{result.metadata['source_name']}:\"\n"
16711671
" f\"{result.metadata['rows_loaded']}\"\n"
@@ -1855,7 +1855,7 @@ def test_given_same_node_results_in_multiple_targets_when_reading_then_uses_acti
18551855
"@task\n"
18561856
"def consume_result(ctx):\n"
18571857
" result = ctx.result_of(node_function=produce_result)\n"
1858-
" output = Path(__file__).parents[1].joinpath('target_result.txt')\n"
1858+
" output = Path(__file__).parents[2].joinpath('target_result.txt')\n"
18591859
" output.write_text(str(result.payload['target']))\n"
18601860
" return ctx.result()\n"
18611861
),

‎tests/e2e/src/sqlbuild/cli/commands/main/build/test_loader_watermark_build.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def test_given_managed_loader_watermark_when_reloaded_then_incremental_consumes_
5757
"from sqlbuild.loaders import loader\n\n"
5858
"@loader\n"
5959
"def raw_orders(ctx):\n"
60-
" maximum = int(Path(__file__).parents[1].joinpath('maximum.txt').read_text())\n"
60+
" maximum = int(Path(__file__).parents[2].joinpath('maximum.txt').read_text())\n"
6161
" return [{'id': value, 'amount': value * 100} "
6262
"for value in range(1, maximum + 1)]\n"
6363
),

0 commit comments

Comments
 (0)