def test_returns_legacy_name_as_name():
    schema = AcceleratorExperimentSchemaV1()
    dump = {'legacy_name': 'Test'}
    expected = {'name': 'Test'}

    result = schema.dumps(dump).data

    assert expected == json.loads(result)
def test_returns_none_as_name_if_empty_present():
    schema = AcceleratorExperimentSchemaV1()
    dump = {}
    expected = {'name': None}

    result = schema.dumps(dump).data

    assert expected == json.loads(result)
def test_returns_legacy_name_as_name_if_experiment_missing():
    schema = AcceleratorExperimentSchemaV1()
    dump = {
        'legacy_name': 'LEGACY-EXP1',
        'institutions': [{
            'value': 'INS'
        }],
        'accelerator': {
            'value': 'ACC'
        },
    }
    expected = {'name': 'LEGACY-EXP1'}

    result = schema.dumps(dump).data

    assert expected == json.loads(result)
def test_returns_dashed_institution_accelerator_experiment_as_name_if_all_present(
):
    schema = AcceleratorExperimentSchemaV1()
    dump = {
        'legacy_name': 'LEGACY-EXP1',
        'institutions': [{
            'value': 'INS'
        }],
        'accelerator': {
            'value': 'ACC'
        },
        'experiment': {
            'value': 'EXP1'
        },
    }
    expected = {'name': 'INS-ACC-EXP1'}

    result = schema.dumps(dump).data

    assert expected == json.loads(result)
def test_returns_dashed_institution_accelerator_experiment_as_name_with_unicode(
):
    schema = AcceleratorExperimentSchemaV1()
    dump = {
        'legacy_name': 'LEGACY-EXP1',
        'institutions': [{
            'value': u'PSI, Villigen'
        }],
        'accelerator': {
            'value': u'PSI πM1 beam line'
        },
        'experiment': {
            'value': u'MUSE'
        },
    }
    expected = {'name': u'PSI, Villigen-PSI πM1 beam line-MUSE'}

    result = schema.dumps(dump).data

    assert expected == json.loads(result)