|
| 1 | +import os |
| 2 | +import sys |
| 3 | +import unittest |
| 4 | + |
| 5 | +sys.path.append(os.path.join(os.path.dirname(__file__), '..')) |
| 6 | + |
| 7 | +from scripts.generators import asciidoc_fields |
| 8 | +from scripts.generators import intermediate_files |
| 9 | +from scripts.schema import cleaner |
| 10 | +from scripts.schema import loader |
| 11 | +from scripts.schema import finalizer |
| 12 | + |
| 13 | + |
| 14 | +class TestGeneratorsAsciiFields(unittest.TestCase): |
| 15 | + |
| 16 | + @classmethod |
| 17 | + def setUpClass(cls): |
| 18 | + fields = loader.load_schemas() |
| 19 | + cleaner.clean(fields) |
| 20 | + finalizer.finalize(fields) |
| 21 | + cls.nested = intermediate_files.generate_nested_fields(fields) |
| 22 | + |
| 23 | + def setUp(self): |
| 24 | + self.fieldsets = TestGeneratorsAsciiFields.nested |
| 25 | + self.event_fieldset = self.fieldsets['event'] |
| 26 | + self.foo_fieldset = self.dummy_fieldset() |
| 27 | + |
| 28 | + def dummy_fieldset(self): |
| 29 | + return { |
| 30 | + 'description': 'foo', |
| 31 | + 'fields': { |
| 32 | + 'foo.type': { |
| 33 | + 'dashed_name': 'foo-type', |
| 34 | + 'description': 'describes the foo', |
| 35 | + 'example': '2016-05-23T08:05:34.853Z', |
| 36 | + 'flat_name': 'foo.type', |
| 37 | + 'level': 'core', |
| 38 | + 'name': 'type', |
| 39 | + 'normalize': ['array'], |
| 40 | + 'short': 'describes the foo', |
| 41 | + 'ignore_above': 1024, |
| 42 | + 'type': 'keyword', |
| 43 | + 'allowed_values': [{ |
| 44 | + 'description': 'fluffy foo', |
| 45 | + 'name': 'fluffy', |
| 46 | + }, |
| 47 | + { |
| 48 | + 'description': 'coarse foo', |
| 49 | + 'name': 'coarse', |
| 50 | + } |
| 51 | + ] |
| 52 | + }, |
| 53 | + 'foo.id': { |
| 54 | + 'dashed_name': 'foo-id', |
| 55 | + 'description': 'Unique ID of the foo.', |
| 56 | + 'example': 'foo123', |
| 57 | + 'flat_name': 'foo.id', |
| 58 | + 'ignore_above': 1024, |
| 59 | + 'level': 'core', |
| 60 | + 'name': 'id', |
| 61 | + 'normalize': [], |
| 62 | + 'short': 'Unique ID of the foo.', |
| 63 | + 'type': 'keyword' |
| 64 | + } |
| 65 | + }, |
| 66 | + 'group': 2, |
| 67 | + 'name': 'foo', |
| 68 | + 'prefix': 'foo.', |
| 69 | + 'short': 'Foo fields', |
| 70 | + 'title': 'Foo', |
| 71 | + 'type': 'group' |
| 72 | + } |
| 73 | + |
| 74 | + def test_validate_sort_event_fieldset(self): |
| 75 | + sorted_event_fields = asciidoc_fields.sort_fields(self.event_fieldset) |
| 76 | + # Is a list |
| 77 | + self.assertIsInstance(sorted_event_fields, list) |
| 78 | + |
| 79 | + # `allowed_value_names` key and list value is present |
| 80 | + for field in sorted_event_fields: |
| 81 | + self.assertIsInstance(field.get('allowed_value_names'), list) |
| 82 | + |
| 83 | + def test_validate_sort_dummy_fieldset(self): |
| 84 | + sorted_foo_fields = asciidoc_fields.sort_fields(self.foo_fieldset) |
| 85 | + #import pdb;pdb.set_trace() |
| 86 | + self.assertIsInstance(sorted_foo_fields, list) |
| 87 | + self.assertEqual('id', sorted_foo_fields[0]['name']) |
| 88 | + self.assertEqual('type', sorted_foo_fields[1]['name']) |
| 89 | + self.assertIn('fluffy', sorted_foo_fields[1]['allowed_value_names']) |
| 90 | + self.assertIn('coarse', sorted_foo_fields[1]['allowed_value_names']) |
| 91 | + |
| 92 | +if __name__ == '__main__': |
| 93 | + unittest.main() |
0 commit comments