class TestSeriesService: def setup(self): self.connection_string = "sqlite:///:memory:" self.series_service = SeriesService(self.connection_string, debug=False) self.session = self.series_service._session_factory.get_session() engine = self.series_service._session_factory.engine test_util.build_db(engine) """ @pytest.fixture(scope="class", autouse=True) def build_db(self): """ #Builds an empty sqlite (in-memory) database for testing #:return: None """ # path to the ddl script for building the database ddlpath= abspath(join(dirname(__file__), 'data/empty.sql')) # create and empty sqlite database for testing db = dbconnection.createConnection('sqlite', ':memory:') # read the ddl script and remove the first (BEGIN TRANSACTION) and last (COMMIT) lines ddl = open(ddlpath, 'r').read() ddl = ddl.replace('BEGIN TRANSACTION;','') ddl = ddl.replace('COMMIT;','') # execute each statement to build the odm2 database for line in ddl.split(');')[:-1]: try: db.engine.execute(line + ');') except Exception as e: print e self.write = CreateODM2(db) self.engine= db.engine globals['write'] = self.write globals['engine'] = self.engine globals['db'] = db # return self.write, self.engine def setup(self): self.writer = globals['write'] self.engine = globals['engine'] self.db = globals['db'] """ def test_get_db_version(self): version = test_util.add_version(self.session) db_version = self.series_service.get_db_version() assert version.version_number == db_version def test_get_all_sites_empty(self): sites = self.series_service.get_used_sites() #assert len(sites) == 0 assert sites is None def test_create_qualifier(self): qual = Qualifier() qual.code = "ABC123" qual.description = "This is a test" self.series_service.create_qualifier_by_qual(qual) assert qual.id is not None def test_get_qualifier_by_code(self): assert self.series_service.get_all_qualifiers() == [] qual= self.series_service.create_qualifier("ABC123","This is a test") db_qual = self.series_service.get_qualifier_by_code("ABC123") assert qual.id == db_qual.id def test_get_qualifiers(self): assert self.series_service.get_all_qualifiers() == [] qual= self.series_service.create_qualifier("ABC123","This is a test") db_qual = self.series_service.get_all_qualifiers()[0] assert qual.id == db_qual.id def test_get_all_sites(self): assert self.series_service.get_used_sites() is None site = test_util.add_site(self.session) sites = self.series_service.get_used_sites() assert sites is None if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code series = test_util.add_series(self.session) site = series.site sites = self.series_service.get_used_sites() assert len(sites) == 1 if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code def test_get_site_by_id_fail(self): assert self.series_service.get_site_by_id(0) == None site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(10) assert db_site == None def test_get_site_by_id(self): site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(site.id) assert db_site != None assert site.code == db_site.code def test_get_all_variables(self): assert self.series_service.get_all_variables() == [] variable = test_util.add_variable(self.session) variables = self.series_service.get_all_variables() assert len(variables) == 1 assert variable.code == variables[0].code def test_get_variable_by_id(self): assert self.series_service.get_variable_by_id(10) == None variable = test_util.add_variable(self.session) db_var = self.series_service.get_variable_by_id(variable.id) assert db_var != None assert db_var.code == variable.code def test_get_variables_by_site_code(self): assert self.series_service.get_variables_by_site_code('ABC123') == [] series = test_util.add_series(self.session) variable = series.variable db_variables = self.series_service.get_variables_by_site_code(series.site_code) assert db_variables != None assert variable.code == db_variables[0].code def test_get_all_units(self): assert self.series_service.get_all_units() == [] unit = test_util.add_unit(self.session) units = self.series_service.get_all_units() assert len(units) == 1 assert unit.name == units[0].name def test_get_unit_by_name(self): assert self.series_service.get_unit_by_name("FAIL") == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_name(unit.name) assert unit.id == db_unit.id def test_get_unit_by_id(self): assert self.series_service.get_unit_by_id(10) == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_id(unit.id) assert unit.name == db_unit.name def test_get_all_series(self): assert self.series_service.get_all_series() == [] series = test_util.add_series(self.session) all_series = self.series_service.get_all_series() assert all_series != [] assert series.id == all_series[0].id def test_get_series_by_id(self): assert self.series_service.get_series_by_id(10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id(series.id) assert series.id == db_series.id def test_get_series_by_id_quint(self): assert self.series_service.get_series_by_id_quint(10, 10, 10, 10, 10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id_quint(series.site_id, series.variable_id, series.method_id, series.source_id, series.quality_control_level_id) assert series.id == db_series.id def test_series_exists(self): assert self.series_service.series_exists_quint(10, 10, 10, 10, 10) == False series = test_util.add_series(self.session) site_id = series.site_id var_id = series.variable_id method_id = series.method_id source_id = series.source_id qcl_id = series.quality_control_level_id assert self.series_service.series_exists_quint(site_id, var_id, method_id, source_id, qcl_id) == True ''' def test_save_series(self): series = Series() site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) series.site_id = site.id series.variable_id = variable.id series.method_id = method.id series.source_id = source.id series.quality_control_level_id = qcl.id dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) print series.variable_code assert self.series_service.save_series(series) assert self.series_service.series_exists(site.id, variable.id, method.id, source.id, qcl.id) assert not self.series_service.save_series(series) ''' def test_get_data_value_by_id(self): assert self.series_service.get_data_value_by_id(10) == None data_values = test_util.add_series(self.session).data_values dv = data_values[0] db_dv = self.series_service.get_data_value_by_id(dv.id) assert dv.data_value == db_dv.data_value def test_get_qcl_by_id(self): assert self.series_service.get_qcl_by_id(10) == None qcl = test_util.add_qcl(self.session) db_qcl = self.series_service.get_qcl_by_id(qcl.id) assert qcl.code == db_qcl.code def test_get_all_qcls(self): assert self.series_service.get_all_qcls() == [] qcl = test_util.add_qcl(self.session) all_qcls = self.series_service.get_all_qcls() assert len(all_qcls) == 1 assert qcl.id == all_qcls[0].id def test_get_all_methods(self): assert self.series_service.get_all_methods() == [] method = test_util.add_method(self.session) all_methods = self.series_service.get_all_methods() assert len(all_methods) == 1 assert method.id == all_methods[0].id def test_get_method_by_id(self): assert self.series_service.get_method_by_id(10) == None method = test_util.add_method(self.session) db_method = self.series_service.get_method_by_id(method.id) assert method.description == db_method.description def test_delete_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] self.series_service.delete_dvs([x.local_date_time for x in subset]) assert self.series_service.get_data_value_by_id(subset[0].id) == None series = self.series_service.get_series_by_id(series.id) # Reload assert len(series.data_values) == 5 def test_update_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] for i in range(len(subset)): subset[i].data_value = 100 self.series_service.update_dvs(subset) series = self.series_service.get_series_by_id(series.id) assert series.data_values[0].data_value == 100 def test_create_new_series(self): site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) series = self.series_service.create_new_series(dvs, site.id, variable.id, method.id, source.id, qcl.id) assert series != None assert len(series.data_values) == 10 assert series.site_id == site.id assert series.variable_id == variable.id def test_update_series(self): series = test_util.add_series(self.session) series.site_code = "NEW" series.variable_code = "NEW" self.series_service.update_series(series) series = self.series_service.get_series_by_id(series.id) assert series.site_code == "NEW" assert series.variable_code == "NEW" def test_create_method(self): description = "This tests creating a method" link = "http://www.example.com" method = self.series_service.create_method(description, link) assert method.id != None assert method.description == description assert method.link == link def test_create_variable(self): unit = test_util.add_unit(self.session) variable = self.series_service.create_variable("Code", "Name", "Speciation", unit.id, "SampleMedium", "ValueType", True, # is_regular 5.0, # time_support unit.id, # time_unit_id "DataType", "GeneralCategory", -999.0) # no_data_value assert variable.id != None assert variable.code == "Code" assert variable.variable_unit_id == unit.id def test_create_qcl(self): qcl = self.series_service.create_qcl("Code", "Definition", "Explanation") assert qcl.id != None assert qcl.code == "Code" def test_delete_series(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_series(series) assert self.series_service.get_series_by_id(series.id) == None def test_delete_values(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_values_by_series(series) val = self.series_service.get_series_by_id(series.id) print val assert val != None def test_qcl_exists(self): qcl = test_util.add_qcl(self.session) assert self.series_service.qcl_exists(qcl) == True qcl.code = "00000" qcl.definition = "A new definition" assert self.series_service.qcl_exists(qcl) == False def test_method_exists(self): method = test_util.add_method(self.session) assert self.series_service.method_exists(method) == True method.description = "A new description" assert self.series_service.method_exists(method) == False def test_variable_exists(self): variable = test_util.add_variable(self.session) assert self.series_service.variable_exists(variable) variable.code = "00000" variable.name = "A new name" assert not self.series_service.variable_exists(variable)
class TestSeriesService: def setup(self): self.connection_string = "sqlite:///:memory:" self.series_service = SeriesService(self.connection_string, debug=False) self.session = self.series_service._session_factory.get_session() engine = self.series_service._session_factory.engine test_util.build_db(engine) """ @pytest.fixture(scope="class", autouse=True) def build_db(self): """ #Builds an empty sqlite (in-memory) database for testing #:return: None """ # path to the ddl script for building the database ddlpath= abspath(join(dirname(__file__), 'data/empty.sql')) # create and empty sqlite database for testing db = dbconnection.createConnection('sqlite', ':memory:') # read the ddl script and remove the first (BEGIN TRANSACTION) and last (COMMIT) lines ddl = open(ddlpath, 'r').read() ddl = ddl.replace('BEGIN TRANSACTION;','') ddl = ddl.replace('COMMIT;','') # execute each statement to build the odm2 database for line in ddl.split(');')[:-1]: try: db.engine.execute(line + ');') except Exception as e: print e self.write = CreateODM2(db) self.engine= db.engine globals['write'] = self.write globals['engine'] = self.engine globals['db'] = db # return self.write, self.engine def setup(self): self.writer = globals['write'] self.engine = globals['engine'] self.db = globals['db'] """ def test_get_db_version(self): version = test_util.add_version(self.session) db_version = self.series_service.get_db_version() assert version.version_number == db_version def test_get_all_sites_empty(self): sites = self.series_service.get_used_sites() #assert len(sites) == 0 assert sites is None def test_create_qualifier(self): qual = Qualifier() qual.code = "ABC123" qual.description = "This is a test" self.series_service.create_qualifier_by_qual(qual) assert qual.id is not None def test_get_qualifier_by_code(self): assert self.series_service.get_all_qualifiers() == [] qual = self.series_service.create_qualifier("ABC123", "This is a test") db_qual = self.series_service.get_qualifier_by_code("ABC123") assert qual.id == db_qual.id def test_get_qualifiers(self): assert self.series_service.get_all_qualifiers() == [] qual = self.series_service.create_qualifier("ABC123", "This is a test") db_qual = self.series_service.get_all_qualifiers()[0] assert qual.id == db_qual.id def test_get_all_sites(self): assert self.series_service.get_used_sites() is None site = test_util.add_site(self.session) sites = self.series_service.get_used_sites() assert sites is None if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code series = test_util.add_series(self.session) site = series.site sites = self.series_service.get_used_sites() assert len(sites) == 1 if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code def test_get_site_by_id_fail(self): assert self.series_service.get_site_by_id(0) == None site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(10) assert db_site == None def test_get_site_by_id(self): site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(site.id) assert db_site != None assert site.code == db_site.code def test_get_all_variables(self): assert self.series_service.get_all_variables() == [] variable = test_util.add_variable(self.session) variables = self.series_service.get_all_variables() assert len(variables) == 1 assert variable.code == variables[0].code def test_get_variable_by_id(self): assert self.series_service.get_variable_by_id(10) == None variable = test_util.add_variable(self.session) db_var = self.series_service.get_variable_by_id(variable.id) assert db_var != None assert db_var.code == variable.code def test_get_variables_by_site_code(self): assert self.series_service.get_variables_by_site_code('ABC123') == [] series = test_util.add_series(self.session) variable = series.variable db_variables = self.series_service.get_variables_by_site_code( series.site_code) assert db_variables != None assert variable.code == db_variables[0].code def test_get_all_units(self): assert self.series_service.get_all_units() == [] unit = test_util.add_unit(self.session) units = self.series_service.get_all_units() assert len(units) == 1 assert unit.name == units[0].name def test_get_unit_by_name(self): assert self.series_service.get_unit_by_name("FAIL") == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_name(unit.name) assert unit.id == db_unit.id def test_get_unit_by_id(self): assert self.series_service.get_unit_by_id(10) == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_id(unit.id) assert unit.name == db_unit.name def test_get_all_series(self): assert self.series_service.get_all_series() == [] series = test_util.add_series(self.session) all_series = self.series_service.get_all_series() assert all_series != [] assert series.id == all_series[0].id def test_get_series_by_id(self): assert self.series_service.get_series_by_id(10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id(series.id) assert series.id == db_series.id def test_get_series_by_id_quint(self): assert self.series_service.get_series_by_id_quint(10, 10, 10, 10, 10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id_quint( series.site_id, series.variable_id, series.method_id, series.source_id, series.quality_control_level_id) assert series.id == db_series.id def test_series_exists(self): assert self.series_service.series_exists_quint(10, 10, 10, 10, 10) == False series = test_util.add_series(self.session) site_id = series.site_id var_id = series.variable_id method_id = series.method_id source_id = series.source_id qcl_id = series.quality_control_level_id assert self.series_service.series_exists_quint(site_id, var_id, method_id, source_id, qcl_id) == True ''' def test_save_series(self): series = Series() site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) series.site_id = site.id series.variable_id = variable.id series.method_id = method.id series.source_id = source.id series.quality_control_level_id = qcl.id dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) print series.variable_code assert self.series_service.save_series(series) assert self.series_service.series_exists(site.id, variable.id, method.id, source.id, qcl.id) assert not self.series_service.save_series(series) ''' def test_get_data_value_by_id(self): assert self.series_service.get_data_value_by_id(10) == None data_values = test_util.add_series(self.session).data_values dv = data_values[0] db_dv = self.series_service.get_data_value_by_id(dv.id) assert dv.data_value == db_dv.data_value def test_get_qcl_by_id(self): assert self.series_service.get_qcl_by_id(10) == None qcl = test_util.add_qcl(self.session) db_qcl = self.series_service.get_qcl_by_id(qcl.id) assert qcl.code == db_qcl.code def test_get_all_qcls(self): assert self.series_service.get_all_qcls() == [] qcl = test_util.add_qcl(self.session) all_qcls = self.series_service.get_all_qcls() assert len(all_qcls) == 1 assert qcl.id == all_qcls[0].id def test_get_all_methods(self): assert self.series_service.get_all_methods() == [] method = test_util.add_method(self.session) all_methods = self.series_service.get_all_methods() assert len(all_methods) == 1 assert method.id == all_methods[0].id def test_get_method_by_id(self): assert self.series_service.get_method_by_id(10) == None method = test_util.add_method(self.session) db_method = self.series_service.get_method_by_id(method.id) assert method.description == db_method.description def test_delete_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] self.series_service.delete_dvs([x.local_date_time for x in subset]) assert self.series_service.get_data_value_by_id(subset[0].id) == None series = self.series_service.get_series_by_id(series.id) # Reload assert len(series.data_values) == 5 def test_update_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] for i in range(len(subset)): subset[i].data_value = 100 self.series_service.update_dvs(subset) series = self.series_service.get_series_by_id(series.id) assert series.data_values[0].data_value == 100 def test_create_new_series(self): site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) series = self.series_service.create_new_series(dvs, site.id, variable.id, method.id, source.id, qcl.id) assert series != None assert len(series.data_values) == 10 assert series.site_id == site.id assert series.variable_id == variable.id def test_update_series(self): series = test_util.add_series(self.session) series.site_code = "NEW" series.variable_code = "NEW" self.series_service.update_series(series) series = self.series_service.get_series_by_id(series.id) assert series.site_code == "NEW" assert series.variable_code == "NEW" def test_create_method(self): description = "This tests creating a method" link = "http://www.example.com" method = self.series_service.create_method(description, link) assert method.id != None assert method.description == description assert method.link == link def test_create_variable(self): unit = test_util.add_unit(self.session) variable = self.series_service.create_variable( "Code", "Name", "Speciation", unit.id, "SampleMedium", "ValueType", True, # is_regular 5.0, # time_support unit.id, # time_unit_id "DataType", "GeneralCategory", -999.0) # no_data_value assert variable.id != None assert variable.code == "Code" assert variable.variable_unit_id == unit.id def test_create_qcl(self): qcl = self.series_service.create_qcl("Code", "Definition", "Explanation") assert qcl.id != None assert qcl.code == "Code" def test_delete_series(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_series(series) assert self.series_service.get_series_by_id(series.id) == None def test_delete_values(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_values_by_series(series) val = self.series_service.get_series_by_id(series.id) print val assert val != None def test_qcl_exists(self): qcl = test_util.add_qcl(self.session) assert self.series_service.qcl_exists(qcl) == True qcl.code = "00000" qcl.definition = "A new definition" assert self.series_service.qcl_exists(qcl) == False def test_method_exists(self): method = test_util.add_method(self.session) assert self.series_service.method_exists(method) == True method.description = "A new description" assert self.series_service.method_exists(method) == False def test_variable_exists(self): variable = test_util.add_variable(self.session) assert self.series_service.variable_exists(variable) variable.code = "00000" variable.name = "A new name" assert not self.series_service.variable_exists(variable)
class TestSeriesService: def setup(self): self.connection_string = "sqlite:///:memory:" self.series_service = SeriesService(self.connection_string, debug=False) self.session = self.series_service._session_factory.get_session() engine = self.series_service._session_factory.engine test_util.build_db(engine) def test_get_db_version(self): version = test_util.add_version(self.session) db_version = self.series_service.get_db_version() assert version.version_number == db_version def test_get_all_sites_empty(self): sites = self.series_service.get_used_sites() #assert len(sites) == 0 assert sites is None def test_create_qualifier(self): qual = Qualifier() qual.code = "ABC123" qual.description = "This is a test" self.series_service.create_qualifier_by_qual(qual) assert qual.id is not None def test_get_qualifiers(self): assert self.series_service.get_all_qualifiers() == [] qual= self.series_service.create_qualifier("ABC123","This is a test") db_qual = self.series_service.get_all_qualifiers()[0] assert qual.id == db_qual.id def test_get_all_sites(self): assert self.series_service.get_used_sites() is None site = test_util.add_site(self.session) sites = self.series_service.get_used_sites() assert sites is None if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code series = test_util.add_series(self.session) site = series.site sites = self.series_service.get_used_sites() assert len(sites) == 1 if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code def test_get_site_by_id_fail(self): assert self.series_service.get_site_by_id(0) == None site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(10) assert db_site == None def test_get_site_by_id(self): site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(site.id) assert db_site != None assert site.code == db_site.code def test_get_all_variables(self): assert self.series_service.get_all_variables() == [] variable = test_util.add_variable(self.session) variables = self.series_service.get_all_variables() assert len(variables) == 1 assert variable.code == variables[0].code def test_get_variable_by_id(self): assert self.series_service.get_variable_by_id(10) == None variable = test_util.add_variable(self.session) db_var = self.series_service.get_variable_by_id(variable.id) assert db_var != None assert db_var.code == variable.code def test_get_variables_by_site_code(self): assert self.series_service.get_variables_by_site_code('ABC123') == [] series = test_util.add_series(self.session) variable = series.variable db_variables = self.series_service.get_variables_by_site_code(series.site_code) assert db_variables != None assert variable.code == db_variables[0].code def test_get_all_units(self): assert self.series_service.get_all_units() == [] unit = test_util.add_unit(self.session) units = self.series_service.get_all_units() assert len(units) == 1 assert unit.name == units[0].name def test_get_unit_by_name(self): assert self.series_service.get_unit_by_name("FAIL") == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_name(unit.name) assert unit.id == db_unit.id def test_get_unit_by_id(self): assert self.series_service.get_unit_by_id(10) == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_id(unit.id) assert unit.name == db_unit.name def test_get_all_series(self): assert self.series_service.get_all_series() == [] series = test_util.add_series(self.session) all_series = self.series_service.get_all_series() assert all_series != [] assert series.id == all_series[0].id def test_get_series_by_id(self): assert self.series_service.get_series_by_id(10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id(series.id) assert series.id == db_series.id def test_get_series_by_id_quint(self): assert self.series_service.get_series_by_id_quint(10, 10, 10, 10, 10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id_quint(series.site_id, series.variable_id, series.method_id, series.source_id, series.quality_control_level_id) assert series.id == db_series.id def test_series_exists(self): assert self.series_service.series_exists_quint(10, 10, 10, 10, 10) == False series = test_util.add_series(self.session) site_id = series.site_id var_id = series.variable_id method_id = series.method_id source_id = series.source_id qcl_id = series.quality_control_level_id assert self.series_service.series_exists_quint(site_id, var_id, method_id, source_id, qcl_id) == True ## TODO Unittest save_series, save_as, save_as_existing ''' def test_save_series(self): series = Series() site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) series.site_id = site.id series.variable_id = variable.id series.method_id = method.id series.source_id = source.id series.quality_control_level_id = qcl.id dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) print series.variable_code assert self.series_service.save_series(series) assert self.series_service.series_exists(site.id, variable.id, method.id, source.id, qcl.id) assert not self.series_service.save_series(series) ''' def test_get_data_value_by_id(self): assert self.series_service.get_data_value_by_id(10) == None data_values = test_util.add_series(self.session).data_values dv = data_values[0] db_dv = self.series_service.get_data_value_by_id(dv.id) assert dv.data_value == db_dv.data_value def test_get_qcl_by_id(self): assert self.series_service.get_qcl_by_id(10) == None qcl = test_util.add_qcl(self.session) db_qcl = self.series_service.get_qcl_by_id(qcl.id) assert qcl.code == db_qcl.code def test_get_all_qcls(self): assert self.series_service.get_all_qcls() == [] qcl = test_util.add_qcl(self.session) all_qcls = self.series_service.get_all_qcls() assert len(all_qcls) == 1 assert qcl.id == all_qcls[0].id def test_get_all_methods(self): assert self.series_service.get_all_methods() == [] method = test_util.add_method(self.session) all_methods = self.series_service.get_all_methods() assert len(all_methods) == 1 assert method.id == all_methods[0].id def test_get_method_by_id(self): assert self.series_service.get_method_by_id(10) == None method = test_util.add_method(self.session) db_method = self.series_service.get_method_by_id(method.id) assert method.description == db_method.description def test_delete_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] self.series_service.delete_dvs([x.id for x in subset]) assert self.series_service.get_data_value_by_id(subset[0].id) == None series = self.series_service.get_series_by_id(series.id) # Reload assert len(series.data_values) == 5 def test_update_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] for i in range(len(subset)): subset[i].data_value = 100 self.series_service.update_dvs(subset) series = self.series_service.get_series_by_id(series.id) assert series.data_values[0].data_value == 100 def test_create_new_series(self): site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) series = self.series_service.create_new_series(dvs, site.id, variable.id, method.id, source.id, qcl.id) assert series != None assert len(series.data_values) == 10 assert series.site_id == site.id assert series.variable_id == variable.id def test_update_series(self): series = test_util.add_series(self.session) series.site_code = "NEW" series.variable_code = "NEW" self.series_service.update_series(series) series = self.series_service.get_series_by_id(series.id) assert series.site_code == "NEW" assert series.variable_code == "NEW" def test_create_method(self): description = "This tests creating a method" link = "http://www.example.com" method = self.series_service.create_method(description, link) assert method.id != None assert method.description == description assert method.link == link def test_create_variable(self): unit = test_util.add_unit(self.session) variable = self.series_service.create_variable("Code", "Name", "Speciation", unit.id, "SampleMedium", "ValueType", True, # is_regular 5.0, # time_support unit.id, # time_unit_id "DataType", "GeneralCategory", -999.0) # no_data_value assert variable.id != None assert variable.code == "Code" assert variable.variable_unit_id == unit.id def test_create_qcl(self): qcl = self.series_service.create_qcl("Code", "Definition", "Explanation") assert qcl.id != None assert qcl.code == "Code" def test_delete_series(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_series(series) assert self.series_service.get_series_by_id(series.id) == None def test_qcl_exists(self): qcl = test_util.add_qcl(self.session) assert self.series_service.qcl_exists(qcl) == True qcl.code = "00000" qcl.definition = "A new definition" assert self.series_service.qcl_exists(qcl) == False def test_method_exists(self): method = test_util.add_method(self.session) assert self.series_service.method_exists(method) == True method.description = "A new description" assert self.series_service.method_exists(method) == False def test_variable_exists(self): variable = test_util.add_variable(self.session) assert self.series_service.variable_exists(variable) variable.code = "00000" variable.name = "A new name" assert not self.series_service.variable_exists(variable)
class TestSeriesService: def setup(self): self.connection_string = "sqlite:///:memory:" self.series_service = SeriesService(self.connection_string, debug=False) self.session = self.series_service._session_factory.get_session() engine = self.series_service._session_factory.engine test_util.build_db(engine) def test_get_db_version(self): version = test_util.add_version(self.session) db_version = self.series_service.get_db_version() assert version.version_number == db_version def test_get_all_sites_empty(self): sites = self.series_service.get_used_sites() #assert len(sites) == 0 assert sites is None def test_create_qualifier(self): qual = Qualifier() qual.code = "ABC123" qual.description = "This is a test" self.series_service.create_qualifier_by_qual(qual) assert qual.id is not None def test_get_qualifiers(self): assert self.series_service.get_all_qualifiers() == [] qual = self.series_service.create_qualifier("ABC123", "This is a test") db_qual = self.series_service.get_all_qualifiers()[0] assert qual.id == db_qual.id def test_get_all_sites(self): assert self.series_service.get_used_sites() is None site = test_util.add_site(self.session) sites = self.series_service.get_used_sites() assert sites is None if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code series = test_util.add_series(self.session) site = series.site sites = self.series_service.get_used_sites() assert len(sites) == 1 if isinstance(sites, list) and len(sites) > 0: assert site.code == sites[0].code def test_get_site_by_id_fail(self): assert self.series_service.get_site_by_id(0) == None site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(10) assert db_site == None def test_get_site_by_id(self): site = test_util.add_site(self.session) db_site = self.series_service.get_site_by_id(site.id) assert db_site != None assert site.code == db_site.code def test_get_all_variables(self): assert self.series_service.get_all_variables() == [] variable = test_util.add_variable(self.session) variables = self.series_service.get_all_variables() assert len(variables) == 1 assert variable.code == variables[0].code def test_get_variable_by_id(self): assert self.series_service.get_variable_by_id(10) == None variable = test_util.add_variable(self.session) db_var = self.series_service.get_variable_by_id(variable.id) assert db_var != None assert db_var.code == variable.code def test_get_variables_by_site_code(self): assert self.series_service.get_variables_by_site_code('ABC123') == [] series = test_util.add_series(self.session) variable = series.variable db_variables = self.series_service.get_variables_by_site_code( series.site_code) assert db_variables != None assert variable.code == db_variables[0].code def test_get_all_units(self): assert self.series_service.get_all_units() == [] unit = test_util.add_unit(self.session) units = self.series_service.get_all_units() assert len(units) == 1 assert unit.name == units[0].name def test_get_unit_by_name(self): assert self.series_service.get_unit_by_name("FAIL") == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_name(unit.name) assert unit.id == db_unit.id def test_get_unit_by_id(self): assert self.series_service.get_unit_by_id(10) == None unit = test_util.add_unit(self.session) db_unit = self.series_service.get_unit_by_id(unit.id) assert unit.name == db_unit.name def test_get_all_series(self): assert self.series_service.get_all_series() == [] series = test_util.add_series(self.session) all_series = self.series_service.get_all_series() assert all_series != [] assert series.id == all_series[0].id def test_get_series_by_id(self): assert self.series_service.get_series_by_id(10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id(series.id) assert series.id == db_series.id def test_get_series_by_id_quint(self): assert self.series_service.get_series_by_id_quint(10, 10, 10, 10, 10) == None series = test_util.add_series(self.session) db_series = self.series_service.get_series_by_id_quint( series.site_id, series.variable_id, series.method_id, series.source_id, series.quality_control_level_id) assert series.id == db_series.id def test_series_exists(self): assert self.series_service.series_exists_quint(10, 10, 10, 10, 10) == False series = test_util.add_series(self.session) site_id = series.site_id var_id = series.variable_id method_id = series.method_id source_id = series.source_id qcl_id = series.quality_control_level_id assert self.series_service.series_exists_quint(site_id, var_id, method_id, source_id, qcl_id) == True ''' def test_save_series(self): series = Series() site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) series.site_id = site.id series.variable_id = variable.id series.method_id = method.id series.source_id = source.id series.quality_control_level_id = qcl.id dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) print series.variable_code assert self.series_service.save_series(series) assert self.series_service.series_exists(site.id, variable.id, method.id, source.id, qcl.id) assert not self.series_service.save_series(series) ''' def test_get_data_value_by_id(self): assert self.series_service.get_data_value_by_id(10) == None data_values = test_util.add_series(self.session).data_values dv = data_values[0] db_dv = self.series_service.get_data_value_by_id(dv.id) assert dv.data_value == db_dv.data_value def test_get_qcl_by_id(self): assert self.series_service.get_qcl_by_id(10) == None qcl = test_util.add_qcl(self.session) db_qcl = self.series_service.get_qcl_by_id(qcl.id) assert qcl.code == db_qcl.code def test_get_all_qcls(self): assert self.series_service.get_all_qcls() == [] qcl = test_util.add_qcl(self.session) all_qcls = self.series_service.get_all_qcls() assert len(all_qcls) == 1 assert qcl.id == all_qcls[0].id def test_get_all_methods(self): assert self.series_service.get_all_methods() == [] method = test_util.add_method(self.session) all_methods = self.series_service.get_all_methods() assert len(all_methods) == 1 assert method.id == all_methods[0].id def test_get_method_by_id(self): assert self.series_service.get_method_by_id(10) == None method = test_util.add_method(self.session) db_method = self.series_service.get_method_by_id(method.id) assert method.description == db_method.description def test_delete_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] self.series_service.delete_dvs([x.id for x in subset]) assert self.series_service.get_data_value_by_id(subset[0].id) == None series = self.series_service.get_series_by_id(series.id) # Reload assert len(series.data_values) == 5 def test_update_dvs(self): series = test_util.add_series(self.session) dvs = series.data_values subset = dvs[:5] for i in range(len(subset)): subset[i].data_value = 100 self.series_service.update_dvs(subset) series = self.series_service.get_series_by_id(series.id) assert series.data_values[0].data_value == 100 def test_create_new_series(self): site = test_util.add_site(self.session) variable = test_util.add_variable(self.session) method = test_util.add_method(self.session) source = test_util.add_source(self.session) qcl = test_util.add_qcl(self.session) dvs = [] for val in range(10): dv = DataValue() dv.data_value = val dv.site_id = site.id dv.variable_id = variable.id dv.method_id = method.id dv.source_id = source.id dv.quality_control_level_id = qcl.id dvs.append(dv) series = self.series_service.create_new_series(dvs, site.id, variable.id, method.id, source.id, qcl.id) assert series != None assert len(series.data_values) == 10 assert series.site_id == site.id assert series.variable_id == variable.id def test_update_series(self): series = test_util.add_series(self.session) series.site_code = "NEW" series.variable_code = "NEW" self.series_service.update_series(series) series = self.series_service.get_series_by_id(series.id) assert series.site_code == "NEW" assert series.variable_code == "NEW" def test_create_method(self): description = "This tests creating a method" link = "http://www.example.com" method = self.series_service.create_method(description, link) assert method.id != None assert method.description == description assert method.link == link def test_create_variable(self): unit = test_util.add_unit(self.session) variable = self.series_service.create_variable( "Code", "Name", "Speciation", unit.id, "SampleMedium", "ValueType", True, # is_regular 5.0, # time_support unit.id, # time_unit_id "DataType", "GeneralCategory", -999.0) # no_data_value assert variable.id != None assert variable.code == "Code" assert variable.variable_unit_id == unit.id def test_create_qcl(self): qcl = self.series_service.create_qcl("Code", "Definition", "Explanation") assert qcl.id != None assert qcl.code == "Code" def test_delete_series(self): series = test_util.add_series(self.session) assert self.series_service.get_series_by_id(series.id) != None self.series_service.delete_series(series) assert self.series_service.get_series_by_id(series.id) == None def test_qcl_exists(self): qcl = test_util.add_qcl(self.session) assert self.series_service.qcl_exists(qcl) == True qcl.code = "00000" qcl.definition = "A new definition" assert self.series_service.qcl_exists(qcl) == False def test_method_exists(self): method = test_util.add_method(self.session) assert self.series_service.method_exists(method) == True method.description = "A new description" assert self.series_service.method_exists(method) == False def test_variable_exists(self): variable = test_util.add_variable(self.session) assert self.series_service.variable_exists(variable) variable.code = "00000" variable.name = "A new name" assert not self.series_service.variable_exists(variable)