def setup_module(): """Create a fresh db (once) for all tests in this module""" configure_logging(verbosity=2, logfile='unittest.log') c = Config() if c.get('general', 'in_production'): # pragma: no cover raise RuntimeError("DO NOT run destructive test on production system") create_tables(enable_delete=True, **db_params(CONFIG_SECTION)) # create a "test_region" and a couple bogus facilities f1 = Facility(county='KING', npi=10987, zip='12345', organization_name='Reason Medical Center', local_code='RMC') f2 = Facility(county='POND', npi=65432, zip='67890', organization_name='No-Reason Medical Center', local_code='NMC') conn = db_connection(CONFIG_SECTION) conn.session.add(f1) conn.session.add(f2) conn.session.commit() rr1 = ReportableRegion(region_name='test_region', dim_facility_pk=10987) conn.session.add(rr1) conn.session.commit() conn.disconnect()
def load_file(data_file): yaml.add_constructor(u'!DAO', obj_loader) objects = yaml.load(data_file.read()) # Foreign key constraints require we commit the Facilities # before the ReportableRegions facilities = [obj for obj in objects if isinstance(obj, Facility)] the_rest = [obj for obj in objects if not isinstance(obj, Facility)] connection = db_connection('longitudinal') connection.session.add_all(facilities) connection.session.commit() connection.session.add_all(the_rest) connection.session.commit() connection.disconnect()
def setUp(self): self.connection = db_connection(CONFIG_SECTION) self.session = self.connection.session params = db_params(CONFIG_SECTION) self.report_criteria = ReportCriteria() self.report_criteria.database = params['database'] self.report_criteria.start_date =\ self.report_criteria.end_date =\ "2009-01-01" self.report_criteria.include_updates = True self.report = GenerateReport(user=params['user'], password=params['password'], report_criteria=self.report_criteria) self.report.IGNORE_SITE = 'Ekek' self.output = self.report.output_filename
def setUp(self): self.conn = db_connection(CONFIG_SECTION) params = db_params(CONFIG_SECTION) self.report_criteria = ReportCriteria() self.report_criteria.database = params['database'] self.report_criteria.start_date =\ self.report_criteria.end_date = "2009-01-01" # setting reportable_region requires db validation self.report_criteria.credentials(user=params['user'], password=params['password']) self.report_criteria.reportable_region = 'test_region' self.report = GenerateReport(user=params['user'], password=params['password'], report_criteria=self.report_criteria) self.output = self.report.output_filename
def process_hammer(proc_no, lock): # pragma: no cover (out of process) """The target used from several concurrent processes to hammer on the same set of database objects. Intended to test syncronization problems with unique constraints, etc. """ conn = db_connection(CONFIG_SECTION) s_or_i = SelectOrInsert(lock, conn.session) #print "enter proc_no %d" % proc_no "Loops over the same set 3 times - this reliably breaks w/o locks" for i in range(0, 3): for r in range(98100, 98110): loc = Location(zip=str(r)) #print "%d fetch zip %d" % (proc_no, r) loc = s_or_i.fetch(loc) assert(loc) conn.disconnect()
def process_hammer(proc_no, lock): # pragma: no cover (out of process) """The target used from several concurrent processes to hammer on the same set of database objects. Intended to test syncronization problems with unique constraints, etc. """ conn = db_connection(CONFIG_SECTION) s_or_i = SelectOrInsert(lock, conn.session) #print "enter proc_no %d" % proc_no "Loops over the same set 3 times - this reliably breaks w/o locks" for i in range(0, 3): for r in range(98100, 98110): loc = Location(zip=str(r)) #print "%d fetch zip %d" % (proc_no, r) loc = s_or_i.fetch(loc) assert (loc) conn.disconnect()
def setup_module(): """Populate database with test data for module tests""" c = Config() if c.get('general', 'in_production'): # pragma: no cover raise RuntimeError("DO NOT run destructive test on production system") "Pull in the filesystem dump from a previous mirth run" mi = MirthInteraction() mi.restore_database() "Run a quick sanity check, whole module requires a populated db" connection = db_connection('warehouse') count = connection.session.query(HL7_Msh).count() connection.disconnect() if count < 4000: err = "Minimal expected count of records not present. "\ "Be sure to run 'process_testfiles_via_mirth' as a prerequisite" raise RuntimeError(err)
def dump(): """Entry point to dump static data to a config file View usage by calling with -h | --help. See project's setup.py entry_points for full name. """ parser = argparse.ArgumentParser() parser.add_argument("DEST", help='file to write to', type=argparse.FileType('w')) args = parser.parse_args() connection = db_connection('longitudinal') objects = [] for type in SUPPORTED_DAOS: yaml.add_representer(getattr(tables, type), obj_repr) objects.extend(connection.session.query( getattr(tables, type)).all()) args.DEST.write(yaml.dump(objects, default_flow_style=False)) connection.disconnect()
def setUp(self): self.conn = db_connection(CONFIG_SECTION) self.lock = Lock() self.s_or_i = SelectOrInsert(self.lock, self.conn.session) self.remove_after_test = []
def setUp(self): self.conn = db_connection(CONFIG_SECTION)
def setUp(self): super(SQATest, self).setUp() self.connection = db_connection('warehouse') self.session = self.connection.session
def setUp(self): self.conn = db_connection('longitudinal') self.argv_restore = sys.argv self.file_to_purge = None