Progress on removing TelegramParserV2_2 and TelegramParserV4 in favor of a generic TelegramParser
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
import unittest
|
||||
|
||||
from test.example_telegrams import TELEGRAM_V2_2
|
||||
from dsmr_parser.parsers import TelegramParserV2_2
|
||||
from dsmr_parser.parsers import TelegramParser
|
||||
from dsmr_parser import telegram_specifications
|
||||
from dsmr_parser import obis_references as obis
|
||||
from test.example_telegrams import TELEGRAM_V2_2
|
||||
|
||||
|
||||
class TelegramParserV2_2Test(unittest.TestCase):
|
||||
""" Test parsing of a DSMR v2.2 telegram. """
|
||||
|
||||
def test_parse(self):
|
||||
parser = TelegramParserV2_2(telegram_specifications.V2_2)
|
||||
parser = TelegramParser(telegram_specifications.V2_2)
|
||||
result = parser.parse(TELEGRAM_V2_2)
|
||||
|
||||
assert float(result[obis.CURRENT_ELECTRICITY_USAGE].value) == 1.01
|
||||
|
||||
@@ -4,12 +4,12 @@ import unittest
|
||||
|
||||
import pytz
|
||||
|
||||
from test.example_telegrams import TELEGRAM_V4_2
|
||||
from dsmr_parser import obis_references as obis
|
||||
from dsmr_parser import telegram_specifications
|
||||
from dsmr_parser.exceptions import InvalidChecksumError, ParseError
|
||||
from dsmr_parser.objects import CosemObject, MBusObject
|
||||
from dsmr_parser.parsers import TelegramParser, TelegramParserV4
|
||||
from dsmr_parser.parsers import TelegramParser
|
||||
from test.example_telegrams import TELEGRAM_V4_2
|
||||
|
||||
|
||||
class TelegramParserV4_2Test(unittest.TestCase):
|
||||
@@ -17,7 +17,7 @@ class TelegramParserV4_2Test(unittest.TestCase):
|
||||
|
||||
def test_valid(self):
|
||||
# No exception is raised.
|
||||
TelegramParserV4.validate_telegram_checksum(TELEGRAM_V4_2)
|
||||
TelegramParser.validate_checksum(TELEGRAM_V4_2)
|
||||
|
||||
def test_invalid(self):
|
||||
# Remove the electricty used data value. This causes the checksum to
|
||||
@@ -28,14 +28,14 @@ class TelegramParserV4_2Test(unittest.TestCase):
|
||||
)
|
||||
|
||||
with self.assertRaises(InvalidChecksumError):
|
||||
TelegramParserV4.validate_telegram_checksum(corrupted_telegram)
|
||||
TelegramParser.validate_checksum(corrupted_telegram)
|
||||
|
||||
def test_missing_checksum(self):
|
||||
# Remove the checksum value causing a ParseError.
|
||||
corrupted_telegram = TELEGRAM_V4_2.replace('!6796\r\n', '')
|
||||
|
||||
with self.assertRaises(ParseError):
|
||||
TelegramParserV4.validate_telegram_checksum(corrupted_telegram)
|
||||
TelegramParser.validate_checksum(corrupted_telegram)
|
||||
|
||||
def test_parse(self):
|
||||
parser = TelegramParser(telegram_specifications.V4)
|
||||
|
||||
@@ -4,7 +4,7 @@ import unittest
|
||||
|
||||
from dsmr_parser import obis_references as obis
|
||||
from dsmr_parser import telegram_specifications
|
||||
from dsmr_parser.parsers import TelegramParserV2_2
|
||||
from dsmr_parser.parsers import TelegramParser
|
||||
from dsmr_parser.clients.protocol import DSMRProtocol
|
||||
|
||||
|
||||
@@ -35,10 +35,7 @@ TELEGRAM_V2_2 = (
|
||||
class ProtocolTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
parser = TelegramParserV2_2
|
||||
specification = telegram_specifications.V2_2
|
||||
|
||||
telegram_parser = parser(specification)
|
||||
telegram_parser = TelegramParser(telegram_specifications.V2_2)
|
||||
self.protocol = DSMRProtocol(None, telegram_parser,
|
||||
telegram_callback=Mock())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user