python_arango_ogm.db.tests.test_pao_migrator

 1import json
 2import pathlib
 3import shutil
 4
 5from python_arango_ogm.db.pao_migration_builder import PAOMigrationBuilder
 6from python_arango_ogm.db.pao_database import PAODatabase
 7from python_arango_ogm.db.pao_migrator import PAOMigrator
 8
 9from python_arango_ogm.db.tests.models import FooModel, BarModel, BazModel
10
11mig_path = pathlib.Path(__file__).parent.parent.parent.parent.resolve()
12print("MIGRATION PATH:", mig_path)
13
14
15def test_simple_migrator():
16    migrator_builder = PAOMigrationBuilder(mig_path)
17
18    try:
19        migrator_builder.create_model_migrations()
20        pao_database = PAODatabase(delete_db=True)
21        pao_database.setup_app_database(delete_db=True)
22
23        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
24        before_count = len(pao_database.db.collections())
25
26        pao_migrator.apply_migrations()
27        assert len(pao_database.db.collections()) == before_count + 6
28    finally:
29        print("Deleting migrations from ", migrator_builder.migration_pathname)
30        shutil.rmtree(migrator_builder.migration_pathname)
31
32
33def test_migrator_idempotency():
34    migrator_builder = PAOMigrationBuilder(mig_path)
35    try:
36        migrator_builder.create_model_migrations()
37        pao_database = PAODatabase(delete_db=True)
38        pao_database.setup_app_database(delete_db=True)
39        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
40        before_count = len(pao_database.db.collections())
41
42        pao_migrator.apply_migrations()
43        assert len(pao_database.db.collections()) == before_count + 6
44
45        # Apply again; should not error or result in duplicates:
46        pao_migrator.apply_migrations()
47        assert len(pao_database.db.collections()) == before_count + 6
48        migrations = pao_migrator.list_migrations()
49        assert len(migrations) == 5
50    finally:
51        print("Deleting migrations from ", migrator_builder.migration_pathname)
52        shutil.rmtree(migrator_builder.migration_pathname)
53
54def test_migrator_models():
55    migrator_builder = PAOMigrationBuilder(mig_path)
56    try:
57        migrator_builder.create_model_migrations()
58        pao_database = PAODatabase(delete_db=True)
59        pao_database.setup_app_database(delete_db=True)
60        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
61        pao_migrator.apply_migrations()
62        foo_model = FooModel()
63        # foo_model.bar_edge.
64    finally:
65        print("Deleting migrations from ", migrator_builder.migration_pathname)
66        shutil.rmtree(migrator_builder.migration_pathname)
67
68
69if __name__ == '__main__':
70    test_simple_migrator()
71    # test_migrator_idempotency()
mig_path = PosixPath('/Users/windfox/src/python-arango-ogm')
def test_simple_migrator():
16def test_simple_migrator():
17    migrator_builder = PAOMigrationBuilder(mig_path)
18
19    try:
20        migrator_builder.create_model_migrations()
21        pao_database = PAODatabase(delete_db=True)
22        pao_database.setup_app_database(delete_db=True)
23
24        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
25        before_count = len(pao_database.db.collections())
26
27        pao_migrator.apply_migrations()
28        assert len(pao_database.db.collections()) == before_count + 6
29    finally:
30        print("Deleting migrations from ", migrator_builder.migration_pathname)
31        shutil.rmtree(migrator_builder.migration_pathname)
def test_migrator_idempotency():
34def test_migrator_idempotency():
35    migrator_builder = PAOMigrationBuilder(mig_path)
36    try:
37        migrator_builder.create_model_migrations()
38        pao_database = PAODatabase(delete_db=True)
39        pao_database.setup_app_database(delete_db=True)
40        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
41        before_count = len(pao_database.db.collections())
42
43        pao_migrator.apply_migrations()
44        assert len(pao_database.db.collections()) == before_count + 6
45
46        # Apply again; should not error or result in duplicates:
47        pao_migrator.apply_migrations()
48        assert len(pao_database.db.collections()) == before_count + 6
49        migrations = pao_migrator.list_migrations()
50        assert len(migrations) == 5
51    finally:
52        print("Deleting migrations from ", migrator_builder.migration_pathname)
53        shutil.rmtree(migrator_builder.migration_pathname)
def test_migrator_models():
55def test_migrator_models():
56    migrator_builder = PAOMigrationBuilder(mig_path)
57    try:
58        migrator_builder.create_model_migrations()
59        pao_database = PAODatabase(delete_db=True)
60        pao_database.setup_app_database(delete_db=True)
61        pao_migrator = PAOMigrator(pao_database, target_path=mig_path)
62        pao_migrator.apply_migrations()
63        foo_model = FooModel()
64        # foo_model.bar_edge.
65    finally:
66        print("Deleting migrations from ", migrator_builder.migration_pathname)
67        shutil.rmtree(migrator_builder.migration_pathname)