mirror of
				https://github.com/onyx-and-iris/vban-cmd-python.git
				synced 2025-10-31 13:41:46 +00:00 
			
		
		
		
	add sync kwarg, reformat tests.
tests reformatted, add sync to tests. add sync kwarg to vbancmd. Set for apply_profile.
This commit is contained in:
		
							parent
							
								
									b7b62ea2fe
								
							
						
					
					
						commit
						1c0ebfa1d1
					
				| @ -1,22 +1,22 @@ | |||||||
| import vbancmd | import vbancmd | ||||||
| from vbancmd import kinds | from vbancmd import kinds | ||||||
| from vbancmd.channel import Modes |  | ||||||
| import socket |  | ||||||
| from threading import Thread |  | ||||||
| 
 | 
 | ||||||
| _kind = 'potato' | _kind = "potato" | ||||||
| opts = { | opts = { | ||||||
|     'ip': 'ws.local', |     "ip": "ws.local", | ||||||
|     'streamname': 'testing', |     "streamname": "testing", | ||||||
|     'port': 6990, |     "port": 6990, | ||||||
|     'bps': 0, |     "bps": 0, | ||||||
|  |     "sync": True, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| vbanrs = {kind.id: vbancmd.connect(_kind, **opts) for kind in kinds.all} | vbanrs = {kind.id: vbancmd.connect(_kind, **opts) for kind in kinds.all} | ||||||
| tests = vbanrs[_kind] | tests = vbanrs[_kind] | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def setup_package(): | def setup_package(): | ||||||
|     tests.login() |     tests.login() | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| def teardown_package(): | def teardown_package(): | ||||||
|     tests.logout() |     tests.logout() | ||||||
|  | |||||||
| @ -4,15 +4,20 @@ from parameterized import parameterized, parameterized_class | |||||||
| import unittest | import unittest | ||||||
| from tests import tests | from tests import tests | ||||||
| 
 | 
 | ||||||
| #@nottest | # @nottest | ||||||
| @parameterized_class([ | @parameterized_class([{"val": False}, {"val": True}]) | ||||||
|     { "val": False }, { "val": True } |  | ||||||
| ]) |  | ||||||
| class TestSetAndGetBoolHigher(unittest.TestCase): | class TestSetAndGetBoolHigher(unittest.TestCase): | ||||||
|     """ strip tests, physical and virtual """ |     """strip tests, physical and virtual""" | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'mute'), (2, 'mono'), (3, 'A1'), (6, 'B3'), (6, 'mute'), |     @parameterized.expand( | ||||||
|     ]) |         [ | ||||||
|  |             (0, "mute"), | ||||||
|  |             (2, "mono"), | ||||||
|  |             (3, "A1"), | ||||||
|  |             (6, "B3"), | ||||||
|  |             (6, "mute"), | ||||||
|  |         ] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_strip_bool_params(self, index, param): |     def test_it_sets_and_gets_strip_bool_params(self, index, param): | ||||||
|         setattr(tests.strip[index], param, self.val) |         setattr(tests.strip[index], param, self.val) | ||||||
|         retval = getattr(tests.strip[index], param) |         retval = getattr(tests.strip[index], param) | ||||||
| @ -20,9 +25,10 @@ class TestSetAndGetBoolHigher(unittest.TestCase): | |||||||
|         assert_equal(retval, self.val) |         assert_equal(retval, self.val) | ||||||
| 
 | 
 | ||||||
|     """ bus tests, physical and virtual """ |     """ bus tests, physical and virtual """ | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'mute'), (2, 'mono'), (6, 'mute'), (2, 'eq'), (7, 'eq_ab') |     @parameterized.expand( | ||||||
|     ]) |         [(0, "mute"), (2, "mono"), (6, "mute"), (2, "eq"), (7, "eq_ab")] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_bus_bool_params(self, index, param): |     def test_it_sets_and_gets_bus_bool_params(self, index, param): | ||||||
|         setattr(tests.bus[index], param, self.val) |         setattr(tests.bus[index], param, self.val) | ||||||
|         retval = getattr(tests.bus[index], param) |         retval = getattr(tests.bus[index], param) | ||||||
| @ -30,10 +36,19 @@ class TestSetAndGetBoolHigher(unittest.TestCase): | |||||||
|         assert_equal(retval, self.val) |         assert_equal(retval, self.val) | ||||||
| 
 | 
 | ||||||
|     """ bus mode tests, physical and virtual """ |     """ bus mode tests, physical and virtual """ | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'amix'), (0, 'tvmix'), (2, 'composite'), (2, 'upmix41'),  |     @parameterized.expand( | ||||||
|     (7, 'upmix21'), (7, 'rearonly'), (6, 'lfeonly'), (6, 'repeat') |         [ | ||||||
|     ]) |             (0, "amix"), | ||||||
|  |             (0, "tvmix"), | ||||||
|  |             (2, "composite"), | ||||||
|  |             (2, "upmix41"), | ||||||
|  |             (7, "upmix21"), | ||||||
|  |             (7, "rearonly"), | ||||||
|  |             (6, "lfeonly"), | ||||||
|  |             (6, "repeat"), | ||||||
|  |         ] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_bus_mode_bool_params(self, index, param): |     def test_it_sets_and_gets_bus_mode_bool_params(self, index, param): | ||||||
|         setattr(tests.bus[index].mode, param, self.val) |         setattr(tests.bus[index].mode, param, self.val) | ||||||
|         retval = getattr(tests.bus[index].mode, param) |         retval = getattr(tests.bus[index].mode, param) | ||||||
| @ -41,43 +56,39 @@ class TestSetAndGetBoolHigher(unittest.TestCase): | |||||||
|         assert_equal(retval, self.val) |         assert_equal(retval, self.val) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #@nottest | # @nottest | ||||||
| @parameterized_class([ | @parameterized_class([{"val": "test0"}, {"val": "test1"}, {"val": ""}]) | ||||||
|     { "val": "test0" }, { "val": "test1" } |  | ||||||
| ]) |  | ||||||
| class TestSetAndGetStringHigher(unittest.TestCase): | class TestSetAndGetStringHigher(unittest.TestCase): | ||||||
|     """ strip tests, physical and virtual """ |     """strip tests, physical and virtual""" | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (2, 'label'), (6, 'label') |     @parameterized.expand([(2, "label"), (6, "label")]) | ||||||
|     ]) |  | ||||||
|     def test_it_sets_and_gets_strip_string_params(self, index, param): |     def test_it_sets_and_gets_strip_string_params(self, index, param): | ||||||
|         setattr(tests.strip[index], param, self.val) |         setattr(tests.strip[index], param, self.val) | ||||||
|         assert_equal(getattr(tests.strip[index], param), self.val) |         assert_equal(getattr(tests.strip[index], param), self.val) | ||||||
| 
 | 
 | ||||||
|     """ bus tests, physical and virtual """ |     """ bus tests, physical and virtual """ | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'label'), (7, 'label') |     @parameterized.expand([(0, "label"), (7, "label")]) | ||||||
|     ]) |  | ||||||
|     def test_it_sets_and_gets_bus_string_params(self, index, param): |     def test_it_sets_and_gets_bus_string_params(self, index, param): | ||||||
|         setattr(tests.bus[index], param, self.val) |         setattr(tests.bus[index], param, self.val) | ||||||
|         assert_equal(getattr(tests.bus[index], param), self.val) |         assert_equal(getattr(tests.bus[index], param), self.val) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #@nottest | # @nottest | ||||||
| class TestSetAndGetFloatHigher(unittest.TestCase): | class TestSetAndGetFloatHigher(unittest.TestCase): | ||||||
|     """ strip tests, physical and virtual """ |     """strip tests, physical and virtual""" | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 1, 'gain', -6.3), (7, 4, 'gain', -12.5), (3, 3, 'gain', 3.3) |     @parameterized.expand( | ||||||
|     ]) |         [(0, 1, "gain", -6.3), (7, 4, "gain", -12.5), (3, 3, "gain", 3.3)] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_strip_float_params(self, index, j, param, val): |     def test_it_sets_and_gets_strip_float_params(self, index, j, param, val): | ||||||
|         setattr(tests.strip[index].gainlayer[j], param, val) |         setattr(tests.strip[index].gainlayer[j], param, val) | ||||||
|         retval = getattr(tests.strip[index].gainlayer[j], param) |         retval = getattr(tests.strip[index].gainlayer[j], param) | ||||||
|         assert_equal(retval, val) |         assert_equal(retval, val) | ||||||
| 
 | 
 | ||||||
|     """ bus tests, physical and virtual """ |     """ bus tests, physical and virtual """ | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'gain', -6.3), (7, 'gain', -12.5), (3, 'gain', 3.3) |     @parameterized.expand([(0, "gain", -6.3), (7, "gain", -12.5), (3, "gain", 3.3)]) | ||||||
|     ]) |  | ||||||
|     def test_it_sets_and_gets_bus_float_params(self, index, param, val): |     def test_it_sets_and_gets_bus_float_params(self, index, param, val): | ||||||
|         setattr(tests.bus[index], param, val) |         setattr(tests.bus[index], param, val) | ||||||
|         retval = getattr(tests.bus[index], param) |         retval = getattr(tests.bus[index], param) | ||||||
|  | |||||||
| @ -2,28 +2,48 @@ from nose.tools import assert_equal, nottest | |||||||
| from parameterized import parameterized, parameterized_class | from parameterized import parameterized, parameterized_class | ||||||
| 
 | 
 | ||||||
| import unittest | import unittest | ||||||
|  | from vbancmd.channel import Modes | ||||||
| from tests import tests | from tests import tests | ||||||
| 
 | 
 | ||||||
| #@nottest | # @nottest | ||||||
| @parameterized_class([ | @parameterized_class( | ||||||
|     { "val": 0 }, { "val": 1 }, |     [ | ||||||
| ]) |         {"val": 0}, | ||||||
|  |         {"val": 1}, | ||||||
|  |     ] | ||||||
|  | ) | ||||||
| class TestSetAndGetParamsLower(unittest.TestCase): | class TestSetAndGetParamsLower(unittest.TestCase): | ||||||
|  |     def setUp(self) -> None: | ||||||
|  |         tests._modes = Modes() | ||||||
|  | 
 | ||||||
|     """ get_rt, set_rt test """ |     """ get_rt, set_rt test """ | ||||||
|     @parameterized.expand([ | 
 | ||||||
|     (0, 'mute'), (4, 'mute'), |     @parameterized.expand( | ||||||
|     ]) |         [ | ||||||
|  |             (0, "mute"), | ||||||
|  |             (4, "mute"), | ||||||
|  |         ] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_strip_bool_params(self, index, param): |     def test_it_sets_and_gets_strip_bool_params(self, index, param): | ||||||
|         tests.set_rt(f'Strip[{index}]', param, self.val) |         tests.set_rt(f"Strip[{index}]", param, self.val) | ||||||
|         retval = tests._get_rt() |         retval = tests._get_rt() | ||||||
|         retval = not int.from_bytes(retval.stripstate[index], 'little') & tests._modes._mute == 0 |         retval = ( | ||||||
|  |             not int.from_bytes(retval.stripstate[index], "little") & tests._modes._mute | ||||||
|  |             == 0 | ||||||
|  |         ) | ||||||
|         assert_equal(retval, self.val) |         assert_equal(retval, self.val) | ||||||
| 
 | 
 | ||||||
|     @parameterized.expand([ |     @parameterized.expand( | ||||||
|     (0, 'mono'), (5, 'mono'), |         [ | ||||||
|     ]) |             (0, "mono"), | ||||||
|  |             (5, "mono"), | ||||||
|  |         ] | ||||||
|  |     ) | ||||||
|     def test_it_sets_and_gets_strip_bool_params(self, index, param): |     def test_it_sets_and_gets_strip_bool_params(self, index, param): | ||||||
|         tests.set_rt(f'Strip[{index}]', param, self.val) |         tests.set_rt(f"Strip[{index}]", param, self.val) | ||||||
|         retval = tests._get_rt() |         retval = tests._get_rt() | ||||||
|         retval = not int.from_bytes(retval.stripstate[index], 'little') & tests._modes._mono == 0 |         retval = ( | ||||||
|  |             not int.from_bytes(retval.stripstate[index], "little") & tests._modes._mono | ||||||
|  |             == 0 | ||||||
|  |         ) | ||||||
|         assert_equal(retval, self.val) |         assert_equal(retval, self.val) | ||||||
|  | |||||||
| @ -29,6 +29,7 @@ class VbanCmd(abc.ABC): | |||||||
|         self._channel = kwargs["channel"] |         self._channel = kwargs["channel"] | ||||||
|         self._delay = kwargs["delay"] |         self._delay = kwargs["delay"] | ||||||
|         self._ratelimiter = kwargs["ratelimiter"] |         self._ratelimiter = kwargs["ratelimiter"] | ||||||
|  |         self._sync = kwargs["sync"] | ||||||
|         # fmt: off |         # fmt: off | ||||||
|         self._bps_opts = [ |         self._bps_opts = [ | ||||||
|             0, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 31250, |             0, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 31250, | ||||||
| @ -196,6 +197,7 @@ class VbanCmd(abc.ABC): | |||||||
|             count = int.from_bytes(self._text_header.framecounter, "little") + 1 |             count = int.from_bytes(self._text_header.framecounter, "little") + 1 | ||||||
|             self._text_header.framecounter = count.to_bytes(4, "little") |             self._text_header.framecounter = count.to_bytes(4, "little") | ||||||
|             self.cache[f"{id_}.{param}"] = [val, True] |             self.cache[f"{id_}.{param}"] = [val, True] | ||||||
|  |             if self._sync: | ||||||
|                 sleep(self._ratelimiter) |                 sleep(self._ratelimiter) | ||||||
| 
 | 
 | ||||||
|     def sendtext(self, cmd): |     def sendtext(self, cmd): | ||||||
| @ -243,6 +245,7 @@ class VbanCmd(abc.ABC): | |||||||
|             target.apply(submapping) |             target.apply(submapping) | ||||||
| 
 | 
 | ||||||
|     def apply_profile(self, name: str): |     def apply_profile(self, name: str): | ||||||
|  |         self._sync = True | ||||||
|         try: |         try: | ||||||
|             profile = self.profiles[name] |             profile = self.profiles[name] | ||||||
|             if "extends" in profile: |             if "extends" in profile: | ||||||
| @ -257,6 +260,7 @@ class VbanCmd(abc.ABC): | |||||||
|             self.apply(profile) |             self.apply(profile) | ||||||
|         except KeyError: |         except KeyError: | ||||||
|             raise VMCMDErrors(f"Unknown profile: {self.kind.id}/{name}") |             raise VMCMDErrors(f"Unknown profile: {self.kind.id}/{name}") | ||||||
|  |         self._sync = False | ||||||
| 
 | 
 | ||||||
|     def reset(self) -> NoReturn: |     def reset(self) -> NoReturn: | ||||||
|         self.apply_profile("base") |         self.apply_profile("base") | ||||||
| @ -290,6 +294,7 @@ def _make_remote(kind: NamedTuple) -> VbanCmd: | |||||||
|             "channel": 0, |             "channel": 0, | ||||||
|             "delay": 0.001, |             "delay": 0.001, | ||||||
|             "ratelimiter": 0.018, |             "ratelimiter": 0.018, | ||||||
|  |             "sync": False, | ||||||
|         } |         } | ||||||
|         kwargs = defaultkwargs | kwargs |         kwargs = defaultkwargs | kwargs | ||||||
|         VbanCmd.__init__(self, **kwargs) |         VbanCmd.__init__(self, **kwargs) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user