mirror of
https://github.com/JoelBender/bacpypes
synced 2025-09-28 22:15:23 +08:00
start simple with integer objects, other files are empty placeholders
This commit is contained in:
parent
85a8ce9558
commit
f6dadbf22e
7
tests/test_primitive_data/__init__.py
Normal file
7
tests/test_primitive_data/__init__.py
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
"""
|
||||
Test Primitive Data Module
|
||||
"""
|
||||
|
||||
from . import test_integer
|
0
tests/test_primitive_data/test_bit_string.py
Normal file
0
tests/test_primitive_data/test_bit_string.py
Normal file
0
tests/test_primitive_data/test_boolean.py
Normal file
0
tests/test_primitive_data/test_boolean.py
Normal file
0
tests/test_primitive_data/test_character_string.py
Normal file
0
tests/test_primitive_data/test_character_string.py
Normal file
0
tests/test_primitive_data/test_date.py
Normal file
0
tests/test_primitive_data/test_date.py
Normal file
0
tests/test_primitive_data/test_double.py
Normal file
0
tests/test_primitive_data/test_double.py
Normal file
0
tests/test_primitive_data/test_enumerated.py
Normal file
0
tests/test_primitive_data/test_enumerated.py
Normal file
115
tests/test_primitive_data/test_integer.py
Normal file
115
tests/test_primitive_data/test_integer.py
Normal file
|
@ -0,0 +1,115 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Test Primitive Data Integer
|
||||
---------------------------
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
from bacpypes.debugging import bacpypes_debugging, ModuleLogger, xtob
|
||||
from bacpypes.primitivedata import Integer, Tag
|
||||
|
||||
# some debugging
|
||||
_debug = 0
|
||||
_log = ModuleLogger(globals())
|
||||
|
||||
|
||||
@bacpypes_debugging
|
||||
def integer_tag(x):
|
||||
"""Convert a hex string to an integer application tag."""
|
||||
if _debug: integer_tag._debug("integer_tag %r", x)
|
||||
|
||||
b = xtob(x)
|
||||
tag = Tag(Tag.applicationTagClass, Tag.integerAppTag, len(b), b)
|
||||
if _debug: integer_endec._debug(" - tag: %r", tag)
|
||||
|
||||
return tag
|
||||
|
||||
@bacpypes_debugging
|
||||
def integer_encode(obj):
|
||||
"""Encode an Integer object into a tag."""
|
||||
if _debug: integer_encode._debug("integer_encode %r", obj)
|
||||
|
||||
tag = Tag()
|
||||
obj.encode(tag)
|
||||
if _debug: integer_endec._debug(" - tag: %r", tag)
|
||||
|
||||
return tag
|
||||
|
||||
|
||||
@bacpypes_debugging
|
||||
def integer_decode(tag):
|
||||
"""Decode an integer application tag into an integer."""
|
||||
if _debug: integer_decode._debug("integer_decode %r", tag)
|
||||
|
||||
obj = Integer(tag)
|
||||
if _debug: integer_decode._debug(" - obj: %r", obj)
|
||||
|
||||
return obj
|
||||
|
||||
|
||||
@bacpypes_debugging
|
||||
def integer_endec(value, x):
|
||||
"""Pass the value to Integer, construct a tag from the hex string,
|
||||
and compare results of encode and decoding each other."""
|
||||
if _debug: integer_endec._debug("integer_endec %r %r", value, x)
|
||||
|
||||
tag = integer_tag(x)
|
||||
if _debug: integer_endec._debug(" - tag: %r, %r", tag, tag.tagData)
|
||||
|
||||
obj = Integer(value)
|
||||
if _debug: integer_endec._debug(" - obj: %r, %r", obj, obj.value)
|
||||
|
||||
assert integer_encode(obj) == tag
|
||||
assert integer_decode(tag) == obj
|
||||
|
||||
|
||||
@bacpypes_debugging
|
||||
class TestInteger(unittest.TestCase):
|
||||
|
||||
def test_integer(self):
|
||||
if _debug: TestInteger._debug("test_integer")
|
||||
|
||||
obj = Integer()
|
||||
assert obj.value == 0
|
||||
|
||||
def test_integer_int(self):
|
||||
if _debug: TestInteger._debug("test_integer_int")
|
||||
|
||||
obj = Integer(1)
|
||||
assert obj.value == 1
|
||||
assert str(obj) == "Integer(1)"
|
||||
|
||||
obj = Integer(-1)
|
||||
assert obj.value == -1
|
||||
assert str(obj) == "Integer(-1)"
|
||||
|
||||
def test_integer_integer(self):
|
||||
if _debug: TestInteger._debug("test_integer_integer")
|
||||
|
||||
obj1 = Integer(12)
|
||||
obj2 = Integer(obj1)
|
||||
assert obj2.value == 12
|
||||
|
||||
def test_integer_endec(self):
|
||||
if _debug: TestInteger._debug("test_integer_endec")
|
||||
|
||||
with self.assertRaises(IndexError):
|
||||
obj = Integer(integer_tag(''))
|
||||
|
||||
integer_endec(0, '00')
|
||||
integer_endec(1, '01')
|
||||
integer_endec(127, '7f')
|
||||
integer_endec(-128, '80')
|
||||
integer_endec(-1, 'ff')
|
||||
|
||||
integer_endec(32767, '7fff')
|
||||
integer_endec(-32768, '8000')
|
||||
|
||||
integer_endec(8388607, '7fffff')
|
||||
integer_endec(-8388608, '800000')
|
||||
|
||||
integer_endec(2147483647, '7fffffff')
|
||||
integer_endec(-2147483648, '80000000')
|
0
tests/test_primitive_data/test_null.py
Normal file
0
tests/test_primitive_data/test_null.py
Normal file
0
tests/test_primitive_data/test_object_identifier.py
Normal file
0
tests/test_primitive_data/test_object_identifier.py
Normal file
0
tests/test_primitive_data/test_object_type.py
Normal file
0
tests/test_primitive_data/test_object_type.py
Normal file
0
tests/test_primitive_data/test_octet_string.py
Normal file
0
tests/test_primitive_data/test_octet_string.py
Normal file
0
tests/test_primitive_data/test_real.py
Normal file
0
tests/test_primitive_data/test_real.py
Normal file
0
tests/test_primitive_data/test_tag.py
Normal file
0
tests/test_primitive_data/test_tag.py
Normal file
0
tests/test_primitive_data/test_time.py
Normal file
0
tests/test_primitive_data/test_time.py
Normal file
0
tests/test_primitive_data/test_unsigned.py
Normal file
0
tests/test_primitive_data/test_unsigned.py
Normal file
Loading…
Reference in New Issue
Block a user