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()
Esempio n. 2
0
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.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 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()
Esempio n. 8
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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_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()
Esempio n. 13
0
 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 = []
Esempio n. 14
0
 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
Esempio n. 17
0
 def setUp(self):
     super(SQATest, self).setUp()
     self.connection = db_connection('warehouse')
     self.session = self.connection.session
Esempio n. 18
0
 def setUp(self):
     self.conn = db_connection('longitudinal')
     self.argv_restore = sys.argv
     self.file_to_purge = None
 def setUp(self):
     self.conn = db_connection(CONFIG_SECTION)
 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 = []