From ca8c0f7f1d589306e59f5ac564b6aa1cd4d65441 Mon Sep 17 00:00:00 2001 From: Frank Steggink Date: Mon, 8 Aug 2016 16:32:33 +0200 Subject: [PATCH] Added unit tests for StringSubstitutionFilter --- .../configs/stringsubstitutionfilter.cfg | 18 +++++++++ .../test_string_substitution_filter.py | 38 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 tests/filters/configs/stringsubstitutionfilter.cfg create mode 100644 tests/filters/test_string_substitution_filter.py diff --git a/tests/filters/configs/stringsubstitutionfilter.cfg b/tests/filters/configs/stringsubstitutionfilter.cfg new file mode 100644 index 0000000..954aa9e --- /dev/null +++ b/tests/filters/configs/stringsubstitutionfilter.cfg @@ -0,0 +1,18 @@ +# Config file for unit testing StringSubstitutionFilter. + +[etl] +chains = input_string_file|string_sub_filter|packet_buffer|output_std + +[input_string_file] +class = inputs.fileinput.StringFileInput +file_path = tests/data/stringfileinput_formatargs.txt + +[string_sub_filter] +class = filters.stringfilter.StringSubstitutionFilter +format_args = greeting:Hello name:NLExtract + +[packet_buffer] +class = filters.packetbuffer.PacketBuffer + +[output_std] +class = outputs.standardoutput.StandardOutput diff --git a/tests/filters/test_string_substitution_filter.py b/tests/filters/test_string_substitution_filter.py new file mode 100644 index 0000000..cb8d626 --- /dev/null +++ b/tests/filters/test_string_substitution_filter.py @@ -0,0 +1,38 @@ +import os + +from stetl.etl import ETL +from stetl.filters.packetbuffer import PacketBuffer +from stetl.filters.stringfilter import StringSubstitutionFilter +from tests.stetl_test_case import StetlTestCase + +class StringSubstitutionFilterTest(StetlTestCase): + """Unit tests for StringSubstitutionFilter""" + + def setUp(self): + super(StringSubstitutionFilterTest, self).setUp() + + # Initialize Stetl + curr_dir = os.path.dirname(os.path.realpath(__file__)) + cfg_dict = {'config_file': os.path.join(curr_dir, 'configs/stringsubstitutionfilter.cfg')} + self.etl = ETL(cfg_dict) + + def test_class(self): + chain = StetlTestCase.get_chain(self.etl) + section = StetlTestCase.get_section(chain, 1) + class_name = self.etl.configdict.get(section, 'class') + + self.assertEqual('filters.stringfilter.StringSubstitutionFilter', class_name) + + def test_instance(self): + chain = StetlTestCase.get_chain(self.etl) + + self.assertTrue(isinstance(chain.get_by_index(1), StringSubstitutionFilter)) + + def test_execute(self): + chain = StetlTestCase.get_chain(self.etl) + chain.run() + + buffer_filter = chain.get_by_class(PacketBuffer) + packet_list = buffer_filter.packet_list + + self.assertEqual(packet_list[0].data, 'Hello NLExtract!')