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)