예제 #1
0
def test_add_dims():
    """ test adding dimensions """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS)
    ss.add_dimensions(tested_dims)
    assert len(ss.dimensions.keys()) > 0
def test_source_setting():
    ac = pconn.AACTConnection()
    ac.set_source(ac.REMOTE)
    assert ac.source == ac.REMOTE

    ac.set_source(ac.LOCAL)
    assert ac.source == ac.LOCAL
예제 #3
0
def test_constraints():
    """ adding and removing constraints """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.add_constraint("start_date >= '2018-06-30'")
    ss.add_constraint("start_date <= '2018-12-31'")
    ss.load_studies()
    assert 0 < ss.studies.shape[0] < 50000
예제 #4
0
def test_drop_data():
    """ dropping data from studies """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.add_constraint("start_date >= '2017-06-30'")
    ss.add_constraint("start_date <= '2017-12-31'")
    ss.load_studies()
    ss.drop_studies(ss.studies.index)
    assert ss.studies.shape[0] == 0
예제 #5
0
def test_drop_dims():
    """ dropping data from dimensions """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.add_constraint("start_date >= '2017-12-31'")
    ss.add_constraint("start_date <= '2018-12-31'")
    ss.load_studies()
    tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS)
    ss.add_dimensions(tested_dims)
    ss.drop_dimensions(tested_dims)
    assert len(ss.dimensions) == 0
예제 #6
0
def test_all_dimensions():
    """ test loading data from all dimensions """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.add_constraint("start_date >= '2017-06-30'")
    ss.add_constraint("start_date <= '2017-12-31'")
    ss.load_studies()
    tested_dims = DIM_HANDLE_MAP.keys()
    ss.add_dimensions(tested_dims)
    ss.refresh_dim_data()
    for _, cur_dim in ss.dimensions.items():
        assert cur_dim.data.shape[0] > 0
예제 #7
0
def test_refresh_dims():
    """ test adding dimensions """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.add_constraint("start_date >= '2016-06-30'")
    ss.add_constraint("start_date <= '2016-12-31'")
    ss.load_studies()
    tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS)
    ss.add_dimensions(tested_dims)
    ss.refresh_dim_data()
    for _, cur_dim in ss.dimensions.items():
        assert cur_dim.data.shape[0] > 0
예제 #8
0
def test_memory_freeing():
    """ test dropping data frees up memory """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.load_studies()
    tested_dims = random.sample(list(DIM_HANDLE_MAP.keys()), NUM_RANDOM_DIMS)
    ss.add_dimensions(tested_dims)
    ss.refresh_dim_data()
    process = psutil.Process(os.getpid())
    pre_clear_mem = process.memory_info().rss
    ss.drop_studies(ss.studies.index)
    post_clear_mem = process.memory_info().rss
    assert post_clear_mem < pre_clear_mem * MEM_THRESH
    def __init__(self, conn=None, tqdm_handler=None):
        """ conn specifies the database connection, if None, attempts to establish a default local connection """
        super().__init__()
        self._constraints = []  # constraints in a syntax that is understood by the _load_studies method
        self.tqdm = tqdm_handler
        self.dimensions = {}  # keyed by dim name, to the dim object with the data
        self.avail_dims = DimAutoCompleter()

        # other attrs avail on the super:
        # self.studies = None  # stores the object that represents the flat studies data
        # self.required_dims = None  # stores the list of dim_name that represents required dimensions

        if conn:
            self.conn = conn
        else:
            self.conn = pc.AACTConnection(source=pc.AACTConnection.LOCAL)
예제 #10
0
def test_load_studies():
    """ loading a set of studies """
    conn = pc.AACTConnection(source=USED_DB)
    ss = AACTStudySet.AACTStudySet(conn=conn)
    ss.load_studies()
    assert ss.studies.shape[0] > 0
def test_remote_conn():
    ac = pconn.AACTConnection()
    ac.connect_to_remote()
    assert ac.active_conn.closed == 0
    ac.close()
def test_bad_set_source():
    ac = pconn.AACTConnection()
    ac.set_source('foo')
    assert True
    ac.close()
def test_poor_source():
    ac = pconn.AACTConnection()
    ac.source = 'foo'  # bad source
    df = ac.query("SELECT * FROM studies LIMIT 1")
    assert not df
    ac.close()
def test_local_query():
    ac = pconn.AACTConnection()
    ac.set_source(ac.LOCAL)
    df = ac.query("SELECT * FROM studies LIMIT 1")
    assert df.shape[0] == 1
    ac.close()
def test_remote_query():
    ac = pconn.AACTConnection()
    df = ac.query("SELECT * FROM studies LIMIT 1")
    assert df.shape[0] == 1
    ac.close()
def test_local_conn():
    ac = pconn.AACTConnection()
    ac.connect_to_local()
    assert ac.active_conn.closed == 0
    ac.close()