voicemeeter-api-python/tests/__init__.py

66 lines
1.4 KiB
Python

import os
import random
import sys
from dataclasses import dataclass
import voicemeeterlib
from voicemeeterlib.kinds import KindId
from voicemeeterlib.kinds import request_kind_map as kindmap
@dataclass
class Data:
"""bounds data to map tests to a kind"""
name: str
phys_in: int
virt_in: int
phys_out: int
virt_out: int
vban_in: int
vban_out: int
button_lower: int
button_upper: int
asio_in: int
asio_out: int
insert_lower: int
insert_higher: int
@property
def channels(self):
return (2 * self.phys_in) + (8 * self.virt_in)
# get KIND_ID from env var, otherwise set to random
KIND_ID = os.environ.get(
"KIND", random.choice(tuple(kind_id.name.lower() for kind_id in KindId))
)
vm = voicemeeterlib.api(KIND_ID)
kind = kindmap(KIND_ID)
data = Data(
name=kind.name,
phys_in=kind.ins[0] - 1,
virt_in=kind.ins[0] + kind.ins[-1] - 1,
phys_out=kind.outs[0] - 1,
virt_out=kind.outs[0] + kind.outs[-1] - 1,
vban_in=kind.vban[0] - 1,
vban_out=kind.vban[-1] - 1,
button_lower=0,
button_upper=79,
asio_in=kind.asio[0] - 1,
asio_out=kind.asio[-1] - 1,
insert_lower=0,
insert_higher=kind.insert - 1,
)
def setup_module():
print(f"\nRunning tests for kind [{data.name}]\n", file=sys.stdout)
vm.login()
vm.command.reset()
def teardown_module():
vm.logout()