diff --git a/docs/architecture.mmd b/docs/architecture.mmd index 50c9d61a..072e8bb2 100644 --- a/docs/architecture.mmd +++ b/docs/architecture.mmd @@ -1,14 +1,14 @@ sequenceDiagram autonumber participant Pytest as Pytest runner - participant ProcFactory as postgresql_proc_factory - participant PgServer as PostgreSQL process + participant BaseProc as base_proc fixture (postgresql_proc_factory) + participant PgServer as PostgreSQL server participant TemplateDB as Template DB (seeded) participant TestDB as Per-test DB (clone) - Pytest->>ProcFactory: request postgresql_proc with load=[load_database] - ProcFactory->>PgServer: start server - ProcFactory->>TemplateDB: invoke load_database (create metadata, seed data) + Pytest->>BaseProc: request base_proc with load=[load_database] + BaseProc->>PgServer: start server + BaseProc->>TemplateDB: invoke load_database (create metadata, seed data) Note right of TemplateDB: Template is created and seeded once per full run loop per test Pytest->>PgServer: request clone of TemplateDB diff --git a/docs/architecture_chaining.mmd b/docs/architecture_chaining.mmd index a914d13f..6aafc28d 100644 --- a/docs/architecture_chaining.mmd +++ b/docs/architecture_chaining.mmd @@ -1,22 +1,25 @@ sequenceDiagram - participant Test as Test - participant ProcF as base_proc Fixture - participant NoProc1 as seeded_noproc Fixture - participant NoProc2 as more_seeded_noproc Fixture - participant DB as PostgreSQL DB + participant Pytest as Pytest runner + participant BaseProc as base_proc fixture (postgresql_proc_factory) + participant NoProc1 as seeded_noproc fixture + participant NoProc2 as more_seeded_noproc fixture + participant PgServer as PostgreSQL server + participant TemplateDB as Template DB (seeded) + participant LayeredDB as Layered DB (seeded) - Test->>ProcF: request base_proc - ProcF->>DB: init database & run load_schema - ProcF-->>Test: return PostgreSQLExecutor + Pytest->>BaseProc: request base_proc + BaseProc->>PgServer: start server + BaseProc->>TemplateDB: init database & run load_schema + BaseProc-->>Pytest: return PostgreSQLExecutor - Test->>NoProc1: request seeded_noproc (depends_on=base_proc) - NoProc1->>ProcF: read connection/template info - NoProc1->>DB: create layered DB / run load_data - NoProc1-->>Test: return NoopExecutor + Pytest->>NoProc1: request seeded_noproc (depends_on=base_proc) + NoProc1->>BaseProc: read connection/template info + NoProc1->>LayeredDB: create layered DB / run load_data + NoProc1-->>Pytest: return NoopExecutor - Test->>NoProc2: request more_seeded_noproc (depends_on=seeded_noproc) - NoProc2->>NoProc1: read connection/template info - NoProc2->>DB: run load_more_data on layered DB - NoProc2-->>Test: return NoopExecutor + Pytest->>NoProc2: request more_seeded_noproc (depends_on=seeded_noproc) + NoProc2->>NoProc1: read connection/template info + NoProc2->>LayeredDB: run load_more_data on layered DB + NoProc2-->>Pytest: return NoopExecutor - Test->>Test: validate tables and data across layers + Pytest->>Pytest: validate tables and data across layers diff --git a/docs/images/architecture.svg b/docs/images/architecture.svg index b7f7b2e6..e3388b3a 100644 --- a/docs/images/architecture.svg +++ b/docs/images/architecture.svg @@ -1 +1 @@ -Per-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerPer-test DB (clone)Template DB (seeded)PostgreSQL processpostgresql_proc_factoryPytest runnerTemplate is created and seeded once per full runloop[per test]request postgresql_proc with load=[load_database]1start server2invoke load_database (create metadata, seed data)3request clone of TemplateDB4create cloned database for test5run test using cloned DB6teardown: commit transaction7teardown: drop_all metadata (cleanup)8 \ No newline at end of file +Per-test DB (clone)Template DB (seeded)PostgreSQL serverbase_proc fixture (postgresql_proc_factory)Pytest runnerPer-test DB (clone)Template DB (seeded)PostgreSQL serverbase_proc fixture (postgresql_proc_factory)Pytest runnerTemplate is created and seeded once per full runloop[per test]request base_proc with load=[load_database]1start server2invoke load_database (create metadata, seed data)3request clone of TemplateDB4create cloned database for test5run test using cloned DB6teardown: commit transaction7teardown: drop_all metadata (cleanup)8 \ No newline at end of file diff --git a/docs/images/architecture_chaining.svg b/docs/images/architecture_chaining.svg new file mode 100644 index 00000000..8f1db154 --- /dev/null +++ b/docs/images/architecture_chaining.svg @@ -0,0 +1 @@ +Layered DB (seeded)Template DB (seeded)PostgreSQL servermore_seeded_noproc fixtureseeded_noproc fixturebase_proc fixture (postgresql_proc_factory)Pytest runnerLayered DB (seeded)Template DB (seeded)PostgreSQL servermore_seeded_noproc fixtureseeded_noproc fixturebase_proc fixture (postgresql_proc_factory)Pytest runnerrequest base_procstart serverinit database & run load_schemareturn PostgreSQLExecutorrequest seeded_noproc (depends_on=base_proc)read connection/template infocreate layered DB / run load_datareturn NoopExecutorrequest more_seeded_noproc (depends_on=seeded_noproc)read connection/template inforun load_more_data on layered DBreturn NoopExecutorvalidate tables and data across layers \ No newline at end of file diff --git a/newsfragments/+56cec843.docs.rst b/newsfragments/+56cec843.docs.rst new file mode 100644 index 00000000..429c55cf --- /dev/null +++ b/newsfragments/+56cec843.docs.rst @@ -0,0 +1 @@ +Make sure diagrams are using unified terminology.