Skip to content

Commit c9b5f56

Browse files
committed
- add tests
1 parent f99ba12 commit c9b5f56

File tree

6 files changed

+55
-5
lines changed

6 files changed

+55
-5
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
/docs/build/output/
77
*.orig
88
*,cover
9+
.cache
10+
.eggs
911
/.tox
1012
.venv
1113
*.egg-info

setup.cfg

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
[egg_info]
22

3-
[pytest]
3+
[tool:pytest]
44
addopts= --tb native -v -r fxX --ignore=sqlalchemy
55
python_files=sqlalchemy_collectd/*/test_*.py
66

77

8-
8+
[aliases]
9+
test=pytest

setup.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@
3535
author_email='[email protected]',
3636
url='http://github.org/zzzeek/sqlalchemy-collectd',
3737
license='MIT',
38-
packages=["sqlalchemy_collectd"],
38+
packages=find_packages(".", exclude=["*.tests"]),
3939
include_package_data=True,
40+
tests_require=['pytest', 'mock'],
41+
setup_requires=['pytest-runner'],
4042
zip_safe=False,
4143
install_requires=requires,
4244
)

sqlalchemy_collectd/connection.py renamed to sqlalchemy_collectd/collectd.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,14 @@ def __init__(
111111
)
112112

113113
def _pack_string(self, typecode, value):
114-
return struct.pack("!HH", typecode, 5 + len(value)) + value + b"\0"
114+
return struct.pack(
115+
"!HH", typecode, 5 + len(value)) + value.encode('ascii') + b"\0"
115116

116117
def send(self, connection, timestamp, *values):
117118
"""Send a message on a connection."""
118119

119120
header = self._host_message_part + \
120-
struct.pack("!HHq", TYPE_TIME, 12, timestamp) + \
121+
struct.pack("!HHq", TYPE_TIME, 12, int(timestamp)) + \
121122
self._remainder_message_parts
122123

123124
payload = self.type.encode_values(*values)

sqlalchemy_collectd/tests/__init__.py

Whitespace-only changes.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import mock
2+
import unittest
3+
4+
from sqlalchemy_collectd import collectd
5+
6+
7+
class CollectDProtocolTest(unittest.TestCase):
8+
9+
def test_encode_type_values(self):
10+
type_ = collectd.Type(
11+
"my_type",
12+
("some_val", collectd.VALUE_GAUGE),
13+
("some_other_val", collectd.VALUE_DERIVE)
14+
)
15+
16+
self.assertEqual(
17+
b'\x00\x06\x00\x18\x00\x02\x01\x02\xc9v\xbe\x9f\x1a\xcf9'
18+
b'@\x00\x00\x00\x00\x00\x00\x01\xc2',
19+
type_.encode_values(25.809, 450)
20+
)
21+
22+
def test_message_construct(self):
23+
type_ = collectd.Type(
24+
"my_type",
25+
("some_val", collectd.VALUE_GAUGE),
26+
("some_other_val", collectd.VALUE_DERIVE)
27+
)
28+
29+
sender = collectd.MessageSender(
30+
type_, "somehost", "someplugin", "someplugininstance",
31+
"sometypeinstance"
32+
)
33+
34+
connection = mock.Mock()
35+
36+
sender.send(connection, 1517607042.95968, 25.809, 450)
37+
38+
self.assertEqual(
39+
[
40+
mock.call(b'\x00\x00\x00\rsomehost\x00\x00\x01\x00\x0c\x00\x00\x00\x00Zt\xd8\x82\x00\x02\x00\x0fsomeplugin\x00\x00\x03\x00\x17someplugininstance\x00\x00\x04\x00\x0cmy_type\x00\x00\x07\x00\x0c\x00\x00\x00\x00\x00\x00\x00\n\x00\x05\x00\x15sometypeinstance\x00\x00\x06\x00\x18\x00\x02\x01\x02\xc9v\xbe\x9f\x1a\xcf9@\x00\x00\x00\x00\x00\x00\x01\xc2')
41+
],
42+
connection.send.mock_calls
43+
)
44+

0 commit comments

Comments
 (0)