Beispiel #1
0
class GMPCreateFilterCommandTestCase(unittest.TestCase):

    FILTER_NAME = "special filter"

    def setUp(self):
        self.connection = MockConnection()
        self.gmp = Gmp(self.connection)

    def test_all_available_filters_types_correct(self):
        for filter_type in FILTER_TYPES:
            self.gmp.create_filter(
                name=self.FILTER_NAME,
                term='sort-reverse=threat first=1 rows=1000',
                filter_type=filter_type,
            )

            self.connection.send.has_been_called_with(
                '<create_filter>'
                '<name>{0}</name>'
                '<term>sort-reverse=threat first=1 rows=1000</term>'
                '<type>{1}</type>'
                '</create_filter>'.format(self.FILTER_NAME, filter_type), )

    def test_invalid_filters_type(self):
        with self.assertRaises(InvalidArgument):
            self.gmp.create_filter(
                name=self.FILTER_NAME,
                term='sort-reverse=threat result_hosts_only=1 '
                'notes=1 overrides=1 levels=hml first=1 rows=1000',
                filter_type='foo',
            )

    def test_all_arguments(self):
        self.gmp.create_filter(
            name=self.FILTER_NAME,
            make_unique=True,
            term='sort-reverse=threat result_hosts_only=1 '
            'notes=1 overrides=1 levels=hml first=1 rows=1000',
            filter_type='task',
            comment='foo',
        )

        self.connection.send.has_been_called_with(
            '<create_filter>'
            '<name>{0}<make_unique>1</make_unique></name>'
            '<comment>foo</comment>'
            '<term>sort-reverse=threat result_hosts_only=1 notes=1 '
            'overrides=1 levels=hml first=1 rows=1000</term>'
            '<type>task</type>'
            '</create_filter>'.format(self.FILTER_NAME), )

    def test_missing_name(self):
        with self.assertRaises(RequiredArgument):
            self.gmp.create_filter('')

        with self.assertRaises(RequiredArgument):
            self.gmp.create_filter(None)