File: test_thirdparty.py

package info (click to toggle)
python-aprslib 0.7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 352 kB
  • sloc: python: 2,973; makefile: 216
file content (58 lines) | stat: -rw-r--r-- 2,161 bytes parent folder | download
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
52
53
54
55
56
57
58

import unittest

from aprslib import parse
from aprslib.exceptions import ParseError, UnknownFormat


class thirdpartyTC(unittest.TestCase):
    def test_empty_subpacket(self):
        self.assertRaises(ParseError, parse, "A>B:}")

    def test_no_body(self):
        self.assertRaises(ParseError, parse, "A>B:}C>D")

    def test_empty_body(self):
        self.assertRaises(ParseError, parse, "A>B:}C>D:")

    def testparse_header_exception(self):
        self.assertRaises(ParseError, parse, "A>B:}C:asd")

    def test_empty_body_of_format_that_is_not_status(self):
        self.assertRaises(ParseError, parse, "A>B:}C>D:!")

        try:
            parse("A>B:}C>D:>")
        except:
            self.fail("empty status packet shouldn't raise exception")

    def test_unsupported_formats_raising(self):
        with self.assertRaises(UnknownFormat):
            for packet_type in '#$%)*,<?T[_{':
                packet = "A>B:}C>D:%saaa" % packet_type

                try:
                    parse(packet)
                except UnknownFormat as exp:
                    self.assertEqual(exp.packet, packet)
                    raise

    def test_valid_thirdparty_msg(self):
        packet = "A-1>APRS,B-2,WIDE1*:}C>APU25N,TCPIP,A-1*::DEF      :ack56"
        result = parse(packet)
        self.assertEqual(result['via'],'')
        self.assertEqual(result['to'],'APRS')
        self.assertEqual(result['from'],'A-1')
        self.assertEqual(result['format'],'thirdparty')
        self.assertEqual(result['raw'],packet)
        self.assertEqual(result['path'],['B-2', 'WIDE1*'])
        self.assertEqual(result['subpacket']['raw'],packet[21:])
        self.assertEqual(result['subpacket']['via'],'')
        self.assertEqual(result['subpacket']['msgNo'],'56')
        self.assertEqual(result['subpacket']['from'],'C')
        self.assertEqual(result['subpacket']['path'],['TCPIP', 'A-1*'])
        self.assertEqual(result['subpacket']['response'],'ack')
        self.assertEqual(result['subpacket']['format'],'message')
        self.assertEqual(result['subpacket']['to'],'APU25N')
        self.assertEqual(result['subpacket']['addresse'],'DEF')