Пример #1
0
    def test_revert_last_name():
        '''It test if we can revert the database to its last stste for a kind
        and project'''
        engine = sqlalchemy.create_engine('sqlite:///:memory:')
        create_naming_database(engine)
        add_project_to_naming_database(engine, name='my_project', code='my',
                                       description='a test project')
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        naming.get_uniquename()
        naming.commit()
        naming.get_uniquename()
        naming.commit()
        names = list(naming.get_names_from_db())
        assert names[0]['name'] == 'myES000001'
        assert names[-1]['project'] == 'my_project'
        assert names[-1]['name'] == 'myES000002'
        assert len(names) == 2
        naming.revert_last_name()

        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        names = list(naming.get_names_from_db())
        assert len(names) == 1
        assert names[-1]['name'] == 'myES000001'
Пример #2
0
 def test_basic_behaviour(self):
     'It tests that we can get names using a FileNamingSchema'
     fhand = NamedTemporaryFile()
     engine = sqlalchemy.create_engine('sqlite:///:memory:')
     create_naming_database(engine)
     add_project_to_naming_database(engine, name='my_project', code='my',
                                    description='a test project')
     naming = DbNamingSchema(engine, project='my_project',
                             feature_kind='EST')
     naming = FileNamingSchema(fhand, naming)
     assert naming.get_uniquename(name='hola') == 'myES000001'
     assert naming.get_uniquename(name='hola') == 'myES000001'
     assert naming.get_uniquename(name='caracol') == 'myES000002'
     naming.commit()
     fhand.seek(0)
     naming = FileNamingSchema(fhand)
     naming.kind = 'EST'
     assert naming.get_uniquename(name='hola') == 'myES000001'
     assert naming.get_uniquename(name='caracol') == 'myES000002'
     try:
         assert naming.get_uniquename(name='pascual')
         self.fail()
         #pylint: disable-msg=W0704
     except ValueError:
         pass
Пример #3
0
 def test_basic_behaviour():
     'It tests that we can get names'
     engine = sqlalchemy.create_engine('sqlite:///:memory:')
     create_naming_database(engine)
     add_project_to_naming_database(engine, name='my_project', code='my',
                                    description='a test project')
     naming = DbNamingSchema(engine, project='my_project',
                             feature_kind='EST')
     assert naming.get_uniquename() == 'myES000001'
     assert naming.get_uniquename() == 'myES000002'
     naming.kind = 'transcribed_cluster'
     assert naming.get_uniquename() == 'myTC000001'
     naming.commit()
Пример #4
0
    def test_name_persistance():
        'The names are stored between db commits'
        engine = sqlalchemy.create_engine('sqlite:///:memory:')
        create_naming_database(engine)
        add_project_to_naming_database(engine, name='my_project', code='my',
                                       description='a test project')
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        assert naming.get_uniquename() == 'myES000001'
        naming.commit()
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')

        assert naming.get_uniquename() == 'myES000002'
Пример #5
0
    def test_rollback():
        "If we don't commit we lose the changes"
        engine = sqlalchemy.create_engine('sqlite:///:memory:')
        create_naming_database(engine)
        add_project_to_naming_database(engine, name='my_project', code='my',
                                       description='a test project')
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        assert naming.get_uniquename() == 'myES000001'

        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        assert naming.get_uniquename() == 'myES000001'

        from franklin.db.naming import _CodeGenerator
Пример #6
0
 def xtest_basic_behaviour2():
     'It tests that we can get names'
     engine = sqlalchemy.create_engine('sqlite:////home/jope/test/naming_db')
     create_naming_database(engine)
     add_project_to_naming_database(engine, name='Melo', code='ME',
                                    description='Melonomics Ests')
     naming = DbNamingSchema(engine, project='Melo', feature_kind='EST')
     assert naming.get_uniquename() == 'MEES000001'
     assert naming.get_uniquename() == 'MEES000002'
     naming.commit(description='Initial')
Пример #7
0
    def test_get_all_names():
        'It test if we can get all names stored in teh database'
        engine = sqlalchemy.create_engine('sqlite:///:memory:')
        create_naming_database(engine)
        add_project_to_naming_database(engine, name='my_project', code='my',
                                       description='a test project')
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        naming.get_uniquename()
        naming.commit()
        naming.get_uniquename()
        naming.commit()

        names = list(naming.get_names_from_db())
        assert names[0]['project'] == 'my_project'
        assert len(names) == 2

        naming.project = 'my_project'
        name = naming.get_names_from_db().next()
        assert name['project'] == 'my_project'
Пример #8
0
    def test_roolback(self):
        'If the changes are not commited they are ignored'
        fhand = NamedTemporaryFile()
        engine = sqlalchemy.create_engine('sqlite:///:memory:')
        create_naming_database(engine)
        add_project_to_naming_database(engine, name='my_project', code='my',
                                       description='a test project')
        naming = DbNamingSchema(engine, project='my_project',
                                feature_kind='EST')
        naming = FileNamingSchema(fhand, naming)
        assert naming.get_uniquename(name='hola') == 'myES000001'
        naming.commit()
        assert naming.get_uniquename(name='caracol') == 'myES000002'

        naming = FileNamingSchema(fhand, feature_kind='EST')
        try:
            assert naming.get_uniquename(name='caracol')
            self.fail()
            #pylint: disable-msg=W0704
        except ValueError:
            pass