Exemple #1
0
    def test_2(self):
        p = os.path.join('migrations', '0002.py')
        with open(p, 'w') as f:
            f.write('''\
from pony import orm

dependencies = ['0001_initial']

def define_entities(db):

    class A(db.Entity):
        name = orm.Required(str)
        peers2_B = orm.Set('B', reverse='peered2_A')
        peered2_B = orm.Set('B', reverse='peers2_A')

    class B(db.Entity):
        name = orm.Required(str)
        peers2_A = orm.Set('A', reverse='peered2_B')
        peered2_A = orm.Set('A', reverse='peers2_B')
        ''')

        s = invoke(command.migrate, ['apply', '-v'])

        define_entities = run_path(p)['define_entities']
        p = 'entities.py'
        db = run_path(p)['db']
        with ExitStack() as stack:
            stack.callback(db.disconnect)
            db = migration.reconstruct_db(db)
            stack.callback(db.disconnect)
            define_entities(db)
            db.generate_mapping(create_tables=False)

            with orm.db_session:
                self.assertEqual(list(db.A.get(name='a1').peered2_B), [])
Exemple #2
0
 def set_questioner(test, Questioner=Questioner):
     with ExitStack() as stack:
         stack.enter_context(
             patch('pony.migrate.writer.InteractiveMigrationQuestioner',
                   Questioner))
         stack.enter_context(
             patch('pony.migrate.command.InteractiveMigrationQuestioner',
                   Questioner))
         yield
Exemple #3
0
    def test_2insert(self):
        db = self.DB
        with ExitStack() as stack:
            stack.callback(db.disconnect)
            stack.enter_context(orm.db_session)

            db.Data(label='label')

            labels = orm.select(d.label for d in db.Data)[:]
            self.assertEqual(labels, ['label'])
Exemple #4
0
def patches(test):
    with ExitStack() as stack:
        stack.enter_context(patch(
            'pony.migrate.writer.InteractiveMigrationQuestioner',
            TestQuestioner
        ))
        stack.enter_context(patch(
            'pony.migrate.command.InteractiveMigrationQuestioner',
            TestQuestioner
        ))
        yield
Exemple #5
0
    def __call__(self, *args):
        class Questioner(questioner.InteractiveMigrationQuestioner):
            def ask_rename(self, model_name, old_name, new_name):
                return False

            def ask_rename_model(self, old_name, new_name):
                return False

        with ExitStack() as stack:
            stack.enter_context(
                patch('pony.migrate.writer.InteractiveMigrationQuestioner',
                      Questioner))
            stack.enter_context(
                patch('pony.migrate.command.InteractiveMigrationQuestioner',
                      Questioner))
            return unittest.TestCase.__call__(self, *args)
Exemple #6
0
 def __enter__(self):
     with ExitStack() as stack:
         try:
             db = self.Test.db
         except AttributeError:
             return
         stack.callback(db.disconnect)
         stack.enter_context(db_session)
         if db.provider.dialect != 'Oracle':
             return
         c = db.execute('select sequence_name from user_sequences')
         li = c.fetchall()
         for name, in li:
             if name == 'MIGRATION_SEQ':
                 continue
             db.execute('DROP SEQUENCE {}'.format(name))
Exemple #7
0
    def test_1(self):
        p = os.path.join('migrations', '0001_initial.py')
        with open(p, 'w') as f:
            f.write('''\
from pony import orm

dependencies = []

def define_entities(db):

    class A(db.Entity):
        name = orm.Required(str)
        peers1_B = orm.Set('B', reverse='peered1_A')
        peered1_B = orm.Set('B', reverse='peers1_A')
        peers2_B = orm.Set('B', reverse='peered2_A')
        peered2_B = orm.Set('B', reverse='peers2_A')

    class B(db.Entity):
        name = orm.Required(str)
        peers1_A = orm.Set('A', reverse='peered1_B')
        peered1_A = orm.Set('A', reverse='peers1_B')
        peers2_A = orm.Set('A', reverse='peered2_B')
        peered2_A = orm.Set('A', reverse='peers2_B')

        ''')

        s = invoke(command.migrate, ['apply', '-v'])

        define_entities = run_path(p)['define_entities']
        p = 'entities.py'
        db = run_path(p)['db']
        with ExitStack() as stack:
            stack.callback(db.disconnect)
            db = migration.reconstruct_db(db)
            stack.callback(db.disconnect)
            define_entities(db)
            db.generate_mapping(create_tables=False)
            stack.enter_context(orm.db_session)
            a1 = db.A(name='a1')
            a2 = db.A(name='a2')
            b1 = db.B(name='b1', peers1_A=[a1])
            b2 = db.B(name='b2', peers2_A=[a2])

            assert not list(db.A.get(name='a1').peered2_B)
Exemple #8
0
 def test1(self):
     db = self.DB
     with ExitStack() as stack:
         stack.callback(db.disconnect)
         db.generate_mapping(create_tables=True, check_tables=True)
Exemple #9
0
 def test1(self):
     with ExitStack() as stack:
         db = self.DB
         stack.callback(db.disconnect)
         stack.enter_context(orm.db_session)
         db.Data(created=datetime.now())
Exemple #10
0
def get_cmd_exitstack(_stack=ExitStack()):
    return _stack
Exemple #11
0
 def __init__(self, Test):
     self.Test = Test
     self.Test.exitstack = ExitStack()