def test_auto(): from peewee_migrate.auto import diff_one, diff_many, model_to_code from peewee_migrate.cli import get_router router = get_router(path.join(CURDIR, 'migrations'), 'sqlite:///:memory:') router.run() migrator = router.migrator models = migrator.orm.values() Person_ = migrator.orm['person'] Tag_ = migrator.orm['tag'] code = model_to_code(Person_) assert code assert 'table_name = "person"' in code changes = diff_many(models, [], migrator=migrator) assert len(changes) == 2 class Person(pw.Model): first_name = pw.IntegerField() last_name = pw.CharField(max_length=1024, null=True, unique=True) tag = pw.ForeignKeyField(Tag_, on_delete='CASCADE', related_name='persons') email = pw.CharField(index=True, unique=True) changes = diff_one(Person, Person_, migrator=migrator) assert len(changes) == 6 assert "on_delete='CASCADE'" in changes[0] assert "backref='persons'" in changes[0] assert changes[-3] == "migrator.drop_not_null('person', 'last_name')" assert changes[-2] == "migrator.drop_index('person', 'last_name')" assert changes[ -1] == "migrator.add_index('person', 'last_name', unique=True)" migrator.drop_index('person', 'email') migrator.add_index('person', 'email', unique=True) class Person(pw.Model): first_name = pw.CharField(unique=True) last_name = pw.CharField(max_length=255, index=True) dob = pw.DateField(null=True) birthday = pw.DateField(default=dt.datetime.now) email = pw.CharField(index=True, unique=True) changes = diff_one(Person_, Person, migrator=migrator) assert not changes class Color(pw.Model): id = pw.AutoField() name = pw.CharField(default='red') code = model_to_code(Color) assert "DEFAULT 'red'" in code
def test_auto(): from peewee_migrate.auto import diff_one, diff_many, model_to_code from peewee_migrate.cli import get_router router = get_router(path.join(CURDIR, 'migrations'), 'sqlite:///:memory:') router.run() migrator = router.migrator models = migrator.orm.values() Person_ = migrator.orm['person'] Tag_ = migrator.orm['tag'] code = model_to_code(Person_) assert code assert 'table_name = "person"' in code changes = diff_many(models, [], migrator=migrator) assert len(changes) == 2 class Person(pw.Model): first_name = pw.IntegerField() last_name = pw.CharField(max_length=1024, null=True, unique=True) tag = pw.ForeignKeyField(Tag_, on_delete='CASCADE', backref='persons') email = pw.CharField(index=True, unique=True) changes = diff_one(Person, Person_, migrator=migrator) assert len(changes) == 6 assert "on_delete='CASCADE'" in changes[0] assert "backref='persons'" in changes[0] assert changes[-3] == "migrator.drop_not_null('person', 'last_name')" assert changes[-2] == "migrator.drop_index('person', 'last_name')" assert changes[-1] == "migrator.add_index('person', 'last_name', unique=True)" migrator.drop_index('person', 'email') migrator.add_index('person', 'email', unique=True) class Person(pw.Model): first_name = pw.CharField(unique=True) last_name = pw.CharField(max_length=255, index=True) dob = pw.DateField(null=True) birthday = pw.DateField(default=dt.datetime.now) email = pw.CharField(index=True, unique=True) changes = diff_one(Person_, Person, migrator=migrator) assert not changes class Color(pw.Model): id = pw.AutoField() name = pw.CharField(default='red') code = model_to_code(Color) assert "DEFAULT 'red'" in code
def test_auto(): from peewee_migrate.auto import diff_one, diff_many, model_to_code from peewee_migrate.cli import get_router router = get_router(path.join(CURDIR, 'migrations'), 'sqlite:///:memory:') router.run() migrator = router.migrator models = migrator.orm.values() Person_ = migrator.orm['person'] Tag_ = migrator.orm['tag'] code = model_to_code(Person_) assert code assert "default=dt.datetime.now" in code assert 'db_table = "person"' in code assert "order_by = ('-dob',)" in code changes = diff_many(models, [], migrator=migrator) assert len(changes) == 2 class Person(pw.Model): first_name = pw.IntegerField() last_name = pw.CharField(max_length=1024, null=True, unique=True) tag = pw.ForeignKeyField(Tag_, on_delete='CASCADE', related_name='persons') changes = diff_one(Person, Person_, migrator=migrator) assert len(changes) == 6 assert "on_delete='CASCADE'" in changes[0] assert "related_name='persons'" in changes[0] assert changes[-3] == "migrator.drop_not_null('person', 'last_name')" assert changes[-2] == "migrator.drop_index('person', 'last_name')" assert changes[ -1] == "migrator.add_index('person', 'last_name', unique=True)"
def test_auto(): from peewee_migrate.auto import diff_one, diff_many, model_to_code from peewee_migrate.cli import get_router router = get_router('tests/migrations', 'sqlite:///:memory:') router.run() migrator = router.migrator models = migrator.orm.values() Person_ = migrator.orm['person'] Tag_ = migrator.orm['tag'] code = model_to_code(Person_) assert code import ipdb; ipdb.set_trace() # XXX BREAKPOINT assert 'db_table = "person"' in code changes = diff_many(models, [], migrator=migrator) assert len(changes) == 2 class Person(pw.Model): first_name = pw.IntegerField() last_name = pw.CharField(max_length=1024, null=True) tag = pw.ForeignKeyField(Tag_, on_delete='CASCADE', related_name='persons') changes = diff_one(Person, Person_, migrator=migrator) assert len(changes) == 4 assert "on_delete='CASCADE'" in changes[0] assert "related_name='persons'" in changes[0] assert changes[-1] == "migrator.drop_not_null('person', 'last_name')"
def test_auto(): from peewee_migrate.auto import diff_one, diff_many, model_to_code from peewee_migrate.cli import get_router router = get_router('tests/migrations', 'sqlite:///:memory:') router.run() migrator = router.migrator models = migrator.orm.values() Person_, _ = models code = model_to_code(Person_) assert code changes = diff_many(models, []) assert len(changes) == 2 class Person(pw.Model): first_name = pw.IntegerField() last_name = pw.CharField(max_length=1024) changes = diff_one(Person_, Person) assert len(changes) == 2