Пример #1
0
def test_config_validates_transfer_log():
    config = transfer_log.Config({
        'query': [{'session.label': 'Label'}, {'project.label': 'Project'}],
        'join': 'session'
    })
    rows = [{'Label': 'ses-01', 'Project': 'My Project'}]
    errors = transfer_log.check_config_and_log_match(config, rows)
    assert not errors
Пример #2
0
def test_transfer_log_missing_column():
    config = transfer_log.Config({
        'query': [{'session.label': 'Label'}, {'project.label': 'Project'}],
        'join': 'session'
    })
    rows = [{'Label': 'ses-01'}]
    errors = transfer_log.check_config_and_log_match(config, rows)
    assert len(errors) == 1
    assert errors[0]['column'] == 'Project'
    assert errors[0]['error'] == 'Transfer log missing column Project'
Пример #3
0
def test_config_mappings():
    config = transfer_log.Config({
        'query': [{'session.label': 'Label'}, {'project.label': 'Project'}],
        'join': 'session',
        'mappings': {
            'Week 4': ['w04', 'wk4', 'Week_4']
        }
    })

    assert config.mappings == {
        'w04': 'Week 4',
        'wk4': 'Week 4',
        'Week_4': 'Week 4'
    }
Пример #4
0
def test_transfer_log_invalid_value():
    config = transfer_log.Config({
        'query': [
            {'session.label': 'Label', 'validate': '^[0-9]+$'},
            {'project.label': 'Project'}
        ],
        'join': 'session'
    })
    rows = [{'Label': 'ses-01', 'Project': 'My Project'}]
    errors = transfer_log.check_config_and_log_match(config, rows)
    print(errors)
    assert len(errors) == 1
    assert errors[0]['row'] == 2
    assert errors[0]['column'] == 'Label'
Пример #5
0
def test_metadata_row():
    config = transfer_log.Config(
        {'query': [
            {'subject.info.ClinicalTrialSiteID': 'SITE'},
            {'subject.label': 'SUBJECT'},
            {'session.label': 'VISIT'},
            {'session.timestamp': 'SCAN DATE', 'timeformat': '%m/%d/%Y'}],
            'join': 'session'}
    )
    test_meta_dict = {'SITE': '266099', 'SUBJECT': '1129', 'VISIT': 'screening', 'SCAN DATE': '8/1/2014'}
    test_meta_row = transfer_log.MetadataRow(config=config, row_dict=test_meta_dict, index=2, case_insensitive=False)
    expected_match_dict = {'subject.info.ClinicalTrialSiteID': '266099', 'subject.label': '1129',
                           'session.label': 'screening', 'session.timestamp': '08/01/2014'}
    assert test_meta_row.match_dict == expected_match_dict
Пример #6
0
def test_flywheel_row():
    config = transfer_log.Config(
        {'query': [
            {'subject.info.ClinicalTrialSiteID': 'SITE'},
            {'subject.label': 'SUBJECT'},
            {'session.label': 'VISIT'},
            {'session.timestamp': 'SCAN DATE', 'timeformat': '%m/%d/%Y'}],
            'join': 'session'}
    )
    test_fw_dict = {'subject.info.ClinicalTrialSiteID': '266099', 'subject.label': '1129',
                    'session.label': 'screening',
                    'session.timestamp': str(datetime.datetime(2014, 8, 1, tzinfo=datetime.timezone.utc))}

    test_fw_index = 'test_id'
    test_fw_row = transfer_log.FlywheelRow(config=config, row_dict=test_fw_dict.copy(), index=test_fw_index,
                                           case_insensitive=False)
    test_fw_dict['session.timestamp'] = '08/01/2014'
    assert test_fw_row.spreadsheet_index == 'test_id'
    assert test_fw_row.match_dict == test_fw_dict