view test/test_plugin_metadata.py @ 151:5a6b8f4be9b9 tracks tip

Docs
author Chris Cannam
date Fri, 21 Apr 2017 14:33:57 +0100
parents af5961718456
children
line wrap: on
line source

import vampyhost as vh
import vamp

plugin_key = "vamp-test-plugin:vamp-test-plugin"

plugin_key_freq = "vamp-test-plugin:vamp-test-plugin-freq"

rate = 44100

expectedVersion = 4

def test_plugin_exists():
    assert plugin_key in vh.list_plugins()
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    assert "pluginVersion" in plug.info
    if plug.info["pluginVersion"] != expectedVersion:
        print("Test plugin version " + str(plug.info["pluginVersion"]) + " does not match expected version " + str(expectedVersion))
    assert plug.info["pluginVersion"] == expectedVersion

def test_plugin_exists_module():
    assert plugin_key in vamp.list_plugins()

def test_plugin_exists_in_freq_version():
    assert plugin_key_freq in vh.list_plugins()

def test_getoutputlist():
    outputs = vh.get_outputs_of(plugin_key)
    assert len(outputs) == 11
    assert "input-summary" in outputs

def test_getoutputlist_module():
    outputs = vamp.get_outputs_of(plugin_key)
    assert len(outputs) == 11
    assert "input-summary" in outputs

def test_getoutputlist_2():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    outputs = plug.get_outputs()
    assert len(outputs) == 11

def test_get_output_by_id():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    out = plug.get_output("input-summary")
    assert "sampleType" in out
    assert out["output_index"] == 9
    try:
        out = plug.get_output("chops")
        assert False
    except Exception:
        pass
    try:
        out = plug.get_output("")
        assert False
    except Exception:
        pass

def test_get_output_by_index():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    out = plug.get_output(0)
    assert "sampleType" in out
    assert out["identifier"] == "instants"
    assert out["output_index"] == 0
    try:
        out = plug.get_output(20)
        assert False
    except Exception:
        pass
    try:
        out = plug.get_output(-1)
        assert False
    except Exception:
        pass
    try:
        out = plug.get_output(plug)
        assert False
    except Exception:
        pass
    
def test_inputdomain():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    assert plug.inputDomain == vh.TIME_DOMAIN

def test_info():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    assert plug.info["identifier"] == "vamp-test-plugin"
    
def test_parameterdescriptors():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    assert plug.parameters[0]["identifier"] == "produce_output"

def test_getparameters_module():
    params = vamp.get_parameters_of(plugin_key)
    assert len(params) == 1
    assert params[0]["identifier"] == "produce_output"

def test_timestamp_method_fail():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    try:
        plug.set_process_timestamp_method(vh.SHIFT_DATA)
        assert False
    except Exception:
        pass

def test_timestamp_method_fail2():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_INPUT_DOMAIN)
    # Not a freq-domain plugin: shouldn't throw, but should return false
    assert (not plug.set_process_timestamp_method(vh.SHIFT_DATA))

def test_timestamp_method_succeed():
    plug = vh.load_plugin(plugin_key_freq, rate, vh.ADAPT_INPUT_DOMAIN)
    assert plug.set_process_timestamp_method(vh.SHIFT_DATA)
    
def test_setparameter():
    plug = vh.load_plugin(plugin_key, rate, vh.ADAPT_NONE)
    assert plug.parameters[0]["identifier"] == "produce_output"
    assert plug.parameters[0]["defaultValue"] == 1
    assert plug.get_parameter_value("produce_output") == plug.parameters[0]["defaultValue"]
    assert plug.set_parameter_value("produce_output", 0) == True
    assert plug.get_parameter_value("produce_output") == 0
    assert plug.set_parameter_values({ "produce_output": 1 }) == True
    assert plug.get_parameter_value("produce_output") == 1
    try:
        plug.set_parameter_value("produce_output", "fish")
        assert False
    except TypeError:
        pass
    try:
        plug.set_parameter_value(4, 0)
        assert False
    except TypeError:
        pass
    try:
        plug.set_parameter_value("steak", 0)
        assert False
    except Exception:
        pass
    try:
        plug.get_parameter_value(4)
        assert False
    except TypeError:
        pass
    try:
        plug.get_parameter_value("steak")
        assert False
    except Exception:
        pass