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'
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
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()
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'
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
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')
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'
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