From af76d2a6939757b0a9c02063d3226fe1a208eb73 Mon Sep 17 00:00:00 2001 From: Masen Furer Date: Mon, 8 Feb 2021 07:42:17 -0800 Subject: [PATCH] Add test case for issue #38 A corresponding Talkgroups__ZoneName.csv is not strictly required. --- .../Digital-Repeaters__Additional.csv | 2 + .../Digital-Repeaters__Main.csv | 2 + .../Talkgroups__Main.csv | 3 ++ tests/test_k7abd.py | 38 +++++++++++++++++++ tox.ini | 9 +++++ 5 files changed, 54 insertions(+) create mode 100644 tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Additional.csv create mode 100644 tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Main.csv create mode 100644 tests/multiple-repeaters-one-talkgroups/Talkgroups__Main.csv create mode 100644 tests/test_k7abd.py create mode 100644 tox.ini diff --git a/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Additional.csv b/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Additional.csv new file mode 100644 index 0000000..d20cc97 --- /dev/null +++ b/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Additional.csv @@ -0,0 +1,2 @@ +Zone Name,Comment,Power,RX Freq,TX Freq,Color Code,TG 2,TG 9,Simplex 99 +Bar;BAR,,High,430.4375,439.4375,1,2,2,2 diff --git a/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Main.csv b/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Main.csv new file mode 100644 index 0000000..870b7e5 --- /dev/null +++ b/tests/multiple-repeaters-one-talkgroups/Digital-Repeaters__Main.csv @@ -0,0 +1,2 @@ +Zone Name,Comment,Power,RX Freq,TX Freq,Color Code,TG 2,TG 9,Simplex 99 +Foo;FOO,,High,430.4375,439.4375,1,1,1,1 diff --git a/tests/multiple-repeaters-one-talkgroups/Talkgroups__Main.csv b/tests/multiple-repeaters-one-talkgroups/Talkgroups__Main.csv new file mode 100644 index 0000000..25af4be --- /dev/null +++ b/tests/multiple-repeaters-one-talkgroups/Talkgroups__Main.csv @@ -0,0 +1,3 @@ +TG 2,2 +TG 9,9 +Simplex 99,99 diff --git a/tests/test_k7abd.py b/tests/test_k7abd.py new file mode 100644 index 0000000..f9606b7 --- /dev/null +++ b/tests/test_k7abd.py @@ -0,0 +1,38 @@ +import os +from pathlib import Path + +from dzcb import k7abd +from dzcb.model import Timeslot + + +def test_multiple_repeaters_one_talkgroups(): + """ + a Digital-Repeaters__ZoneName.csv files does NOT require a Talkgroups__ZoneName.csv + file, as long as all of the talkgroups are defined in at least one + existing Talkgroups.csv + """ + + input_dir = Path(os.path.dirname(__file__)) / "multiple-repeaters-one-talkgroups" + cp = k7abd.Codeplug_from_k7abd(input_dir) + assert len(cp.zones) == 2 + assert len(cp.contacts) == 3 + assert len(cp.channels) == 2 + + exp_cp = cp.expand_static_talkgroups() + assert len(exp_cp.zones) == 2 + assert len(exp_cp.contacts) == 3 + assert len(exp_cp.channels) == 6 + + expect_channels = [ + ("Simplex 99 2 BAR", "Simplex 99", Timeslot.TWO), + ("TG 2 BAR", "TG 2", Timeslot.TWO), + ("TG 9 2 BAR", "TG 9", Timeslot.TWO), + ("Simplex 99 1 FOO", "Simplex 99", Timeslot.ONE), + ("TG 2 1 FOO", "TG 2", Timeslot.ONE), + ("TG 9 1 FOO", "TG 9", Timeslot.ONE), + ] + + for ch, exp_ch in zip(exp_cp.channels, expect_channels): + assert ch.name == exp_ch[0] + assert ch.talkgroup.name == exp_ch[1] + assert ch.talkgroup.timeslot == exp_ch[2] diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..c78c13b --- /dev/null +++ b/tox.ini @@ -0,0 +1,9 @@ +[tox] +envlist = py38 + +[pytest] +testpaths = tests + +[testenv] +deps = pytest ~= 6.2.2 +commands = pytest {posargs} \ No newline at end of file