diff options
Diffstat (limited to 'tests/format')
-rw-r--r-- | tests/format/known.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/format/known.py b/tests/format/known.py new file mode 100644 index 0000000..056238f --- /dev/null +++ b/tests/format/known.py @@ -0,0 +1,44 @@ +#!/usr/bin/python3-dbg +# -*- coding: utf-8 -*- + + +from chrysacase import ChrysalideTestCase +from pychrysalide.analysis.contents import MemoryContent +from pychrysalide.format import KnownFormat + + +class TestKnownFormat(ChrysalideTestCase): + """TestCase for format.KnownFormat.""" + + + def testKnownFormatConstructor(self): + """Build Load a simple content for a flat format.""" + + with self.assertRaisesRegex(RuntimeError, 'pychrysalide.format.KnownFormat is an abstract class'): + fmt = KnownFormat() + + class MyKnownFormat(KnownFormat): + pass + + with self.assertRaisesRegex(TypeError, 'function takes exactly 1 argument .0 given.'): + fmt = MyKnownFormat() + + class MyKnownFormat2(KnownFormat): + pass + + with self.assertRaisesRegex(TypeError, 'unable to convert the provided argument to binary content'): + fmt = MyKnownFormat2(123) + + class MyKnownFormatReady(KnownFormat): + _key = 'rdy' + def __init2__(self, cnt): + super(MyKnownFormatReady, self).__init2__(cnt) + + data = b'\x00\x00\x00\xef' + + cnt = MemoryContent(data) + fmt = MyKnownFormatReady(cnt) + + self.assertIsNotNone(fmt) + + self.assertEqual(fmt.key, 'rdy') |