forked from mwicat/python2-osc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_osc_message_builder.py
More file actions
51 lines (41 loc) · 1.73 KB
/
test_osc_message_builder.py
File metadata and controls
51 lines (41 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import unittest
from pythonosc import osc_message_builder
class TestOscMessageBuilder(unittest.TestCase):
def test_just_address(self):
msg = osc_message_builder.OscMessageBuilder("/a/b/c").build()
self.assertEqual("/a/b/c", msg.address)
self.assertEqual([], msg.params)
def test_no_address_raises(self):
builder = osc_message_builder.OscMessageBuilder("")
self.assertRaises(osc_message_builder.BuildError, builder.build)
def test_wrong_param_raise(self):
builder = osc_message_builder.OscMessageBuilder("")
self.assertRaises(ValueError, builder.add_arg, "what?", 1)
def test_all_param_types(self):
builder = osc_message_builder.OscMessageBuilder(address="/SYNC")
builder.add_arg(4.0)
builder.add_arg(2)
builder.add_arg("value")
builder.add_arg(True)
builder.add_arg(False)
builder.add_arg(b"\x01\x02\x03")
# The same args but with explicit types.
builder.add_arg(4.0, builder.ARG_TYPE_FLOAT)
builder.add_arg(2, builder.ARG_TYPE_INT)
builder.add_arg("value", builder.ARG_TYPE_STRING)
builder.add_arg(True)
builder.add_arg(False)
builder.add_arg(b"\x01\x02\x03", builder.ARG_TYPE_BLOB)
self.assertEqual(12, len(builder.args))
self.assertEqual("/SYNC", builder.address)
builder.address = '/SEEK'
msg = builder.build()
self.assertEqual("/SEEK", msg.address)
self.assertSequenceEqual(
[4.0, 2, "value", True, False, b"\x01\x02\x03"] * 2, msg.params)
def test_build_wrong_type_raises(self):
builder = osc_message_builder.OscMessageBuilder(address="/SYNC")
builder.add_arg('this is not a float', builder.ARG_TYPE_FLOAT)
self.assertRaises(osc_message_builder.BuildError, builder.build)
if __name__ == "__main__":
unittest.main()