Exemplo n.º 1
0
def test_load(skip_remote, dataset):
    if dataset is None:
        pytest.skip()

    # run load
    all_data = dataset.load_tracks()

    assert isinstance(all_data, dict)

    track_ids = dataset.track_ids
    assert set(track_ids) == set(all_data.keys())

    # test that all attributes and properties can be called
    for track_id in tqdm.tqdm(track_ids):
        track = all_data[track_id]
        track_data = get_attributes_and_properties(track)

        for attr in track_data["attributes"]:
            ret = getattr(track, attr)

        for prop in track_data["properties"]:
            ret = getattr(track, prop)

        for cprop in track_data["cached_properties"]:
            ret = getattr(track, cprop)

        jam = track.to_jams()
        assert jam.validate()
Exemplo n.º 2
0
def test_track_placeholder_case():
    data_home_dir = "not/a/real/path"

    for dataset_name in DATASETS:
        data_home = os.path.join(data_home_dir, dataset_name)

        module = importlib.import_module(
            "soundata.datasets.{}".format(dataset_name))
        dataset = module.Dataset(os.path.join(data_home, dataset_name))

        if dataset._track_class is None or dataset.remote_index:
            continue

        if dataset_name in CUSTOM_TEST_TRACKS:
            trackid = CUSTOM_TEST_TRACKS[dataset_name]
        else:
            trackid = dataset.track_ids[0]

        try:
            track_test = dataset.track(trackid)
        except:
            assert False, "{}: {}".format(dataset_name, sys.exc_info()[0])

        track_data = get_attributes_and_properties(track_test)

        for attr in track_data["attributes"]:
            ret = getattr(track_test, attr)

        for prop in track_data["properties"]:
            with pytest.raises(Exception):
                ret = getattr(track_test, prop)

        for cprop in track_data["cached_properties"]:
            with pytest.raises(Exception):
                ret = getattr(track_test, cprop)
Exemplo n.º 3
0
def test_load(skip_remote, dataset):
    if dataset is None:
        pytest.skip()

    # run load
    all_data = dataset.load_clips()

    assert isinstance(all_data, dict)

    clip_ids = dataset.clip_ids
    assert set(clip_ids) == set(all_data.keys())

    # test that all attributes and properties can be called
    for clip_id in tqdm.tqdm(clip_ids):
        clip = all_data[clip_id]
        clip_data = get_attributes_and_properties(clip)

        for attr in clip_data["attributes"]:
            ret = getattr(clip, attr)

        for prop in clip_data["properties"]:
            ret = getattr(clip, prop)

        for cprop in clip_data["cached_properties"]:
            ret = getattr(clip, cprop)

        jam = clip.to_jams()
        assert jam.validate()
Exemplo n.º 4
0
def test_track():
    data_home_dir = "tests/resources/mir_datasets"

    for dataset_name in DATASETS:
        data_home = os.path.join(data_home_dir, dataset_name)

        module = importlib.import_module(
            "soundata.datasets.{}".format(dataset_name))
        dataset = module.Dataset(os.path.join(TEST_DATA_HOME, dataset_name))

        # if the dataset doesn't have a track object, make sure it raises a value error
        # and move on to the next dataset
        if dataset._track_class is None:
            with pytest.raises(NotImplementedError):
                dataset.track("~faketrackid~?!")
            continue

        if dataset_name in CUSTOM_TEST_TRACKS:
            trackid = CUSTOM_TEST_TRACKS[dataset_name]
        else:
            trackid = dataset.track_ids[0]

        # test data home specified
        try:
            track_test = dataset.track(trackid)
        except:
            assert False, "{}: {}".format(dataset_name, sys.exc_info()[0])

        assert isinstance(
            track_test, core.Track
        ), "{}.track must be an instance of type core.Track".format(
            dataset_name)

        assert hasattr(
            track_test,
            "to_jams"), "{}.track must have a to_jams method".format(
                dataset_name)

        # test calling all attributes, properties and cached properties
        track_data = get_attributes_and_properties(track_test)

        for attr in track_data["attributes"]:
            ret = getattr(track_test, attr)

        for prop in track_data["properties"]:
            ret = getattr(track_test, prop)

        for cprop in track_data["cached_properties"]:
            ret = getattr(track_test, cprop)

        # Validate JSON schema
        try:
            jam = track_test.to_jams()
        except:
            assert False, "{}: {}".format(dataset_name, sys.exc_info()[0])

        assert jam.validate(
        ), "Jams validation failed for {}.track({})".format(
            dataset_name, trackid)

        # will fail if something goes wrong with __repr__
        try:
            text_trap = io.StringIO()
            sys.stdout = text_trap
            print(track_test)
            sys.stdout = sys.__stdout__
        except:
            assert False, "{}: {}".format(dataset_name, sys.exc_info()[0])

        with pytest.raises(ValueError):
            dataset.track("~faketrackid~?!")