Example #1
0
    def test_fileinfo_result(self):
        pipelines = dict()
        pipe = FakePipeline('fileinfo')
        pipe.add_module(FileInfoModule(dict()))
        pipelines['fileinfo'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        for filename, desc, mime in TESTFILES:
            filepath = os.path.join(os.path.dirname(test.__file__),
                "data", filename)

            with open(filepath, 'rb') as fp:
                data = fp.read()

            result = client.process_raw(str(uuid.uuid4()), 'fileinfo',
                {'path': filepath, 'name': filename}, data, autosave=False, wait_for_result=True)

            self.assertEqual(desc, result['filetype'])
            self.assertEqual(mime, result['mimetype'])
            self.assertEqual(len(data), result['filesize'])
            self.assertEqual(os.path.splitext(filename)[1][1:], result['extension'])

        self._stop_server(client, thread)
Example #2
0
    def test_fileinfo_result(self):
        pipelines = dict()
        pipe = FakePipeline('fileinfo')
        pipe.add_module(FileInfoModule(dict()))
        pipelines['fileinfo'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        for filename, desc, mime in TESTFILES:
            filepath = os.path.join(os.path.dirname(test.__file__), "data",
                                    filename)

            with open(filepath, 'rb') as fp:
                data = fp.read()

            result = client.process_raw(str(uuid.uuid4()),
                                        'fileinfo', {
                                            'path': filepath,
                                            'name': filename
                                        },
                                        data,
                                        autosave=False,
                                        wait_for_result=True)

            self.assertEqual(desc, result['filetype'])
            self.assertEqual(mime, result['mimetype'])
            self.assertEqual(len(data), result['filesize'])
            self.assertEqual(
                os.path.splitext(filename)[1][1:], result['extension'])

        self._stop_server(client, thread)
Example #3
0
    def test_pipeline_multi_modules(self):
        def test_func(bundle):
            bundle.data['func'] = True
            return bundle

        def test_func2(bundle):
            bundle.data['func2'] = True
            return bundle

        pipelines = dict()
        pipe = FakePipeline('multi')
        pipe.add_func(test_func)
        pipe.add_func(test_func2)
        pipelines['multi'] = pipe
        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()), 'multi', dict(), 'fake://blank',
            autosave=False, wait_for_result=True)

        self._stop_server(client, thread)

        self.assertFalse('exceptions' in data)
        self.assertTrue('func' in data)
        self.assertTrue('func2' in data)
        self.assertTrue(data['func'])
        self.assertTrue(data['func'])
Example #4
0
    def test_result(self):
        pipelines = dict()
        pipe = FakePipeline('hashing')
        pipe.add_module(HashModule(dict()))
        pipelines['hashing'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_raw(str(uuid.uuid4()), 'hashing', dict(), TEST_DATA,
            autosave=False, wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('hash-md5' in data)
        md5 = hashlib.md5()
        md5.update(TEST_DATA)
        self.assertEqual(md5.hexdigest(), data['hash-md5'])

        self.assertTrue('hash-sha1' in data)
        sha1 = hashlib.sha1()
        sha1.update(TEST_DATA)
        self.assertEqual(sha1.hexdigest(), data['hash-sha1'])

        self.assertTrue('hash-sha256' in data)
        sha256 = hashlib.sha256()
        sha256.update(TEST_DATA)
        self.assertEqual(sha256.hexdigest(), data['hash-sha256'])

        self.assertTrue('hash-sha512' in data)
        sha512 = hashlib.sha512()
        sha512.update(TEST_DATA)
        self.assertEqual(sha512.hexdigest(), data['hash-sha512'])
Example #5
0
    def test_default(self):
        pipelines = dict()
        pipe = FakePipeline('hashing')
        pipe.add_module(HashModule(dict()))
        pipelines['hashing'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()), 'hashing', dict(), 'fake://blank',
            autosave=False, wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('hash-md5' in data)
        self.assertTrue('hash-sha1' in data)
        self.assertTrue('hash-sha256' in data)
        self.assertTrue('hash-sha512' in data)
Example #6
0
    def test_pipeline_multi_modules(self):
        def test_func(bundle):
            bundle.data['func'] = True
            return bundle

        def test_func2(bundle):
            bundle.data['func2'] = True
            return bundle

        pipelines = dict()
        pipe = FakePipeline('multi')
        pipe.add_func(test_func)
        pipe.add_func(test_func2)
        pipelines['multi'] = pipe
        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()),
                                  'multi',
                                  dict(),
                                  'fake://blank',
                                  autosave=False,
                                  wait_for_result=True)

        self._stop_server(client, thread)

        self.assertFalse('exceptions' in data)
        self.assertTrue('func' in data)
        self.assertTrue('func2' in data)
        self.assertTrue(data['func'])
        self.assertTrue(data['func'])
Example #7
0
    def test_prefix(self):
        pipelines = dict()
        pipe = FakePipeline('hashing')
        pipe.add_module(HashModule({'prefix': 'verify'}))
        pipelines['hashing'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()),
                                  'hashing',
                                  dict(),
                                  'fake://blank',
                                  autosave=False,
                                  wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('verify-hash-md5' in data)
        self.assertTrue('verify-hash-sha1' in data)
        self.assertTrue('verify-hash-sha256' in data)
        self.assertTrue('verify-hash-sha512' in data)
Example #8
0
    def test_result(self):
        pipelines = dict()
        pipe = FakePipeline('hashing')
        pipe.add_module(HashModule(dict()))
        pipelines['hashing'] = pipe

        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_raw(str(uuid.uuid4()),
                                  'hashing',
                                  dict(),
                                  TEST_DATA,
                                  autosave=False,
                                  wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('hash-md5' in data)
        md5 = hashlib.md5()
        md5.update(TEST_DATA)
        self.assertEqual(md5.hexdigest(), data['hash-md5'])

        self.assertTrue('hash-sha1' in data)
        sha1 = hashlib.sha1()
        sha1.update(TEST_DATA)
        self.assertEqual(sha1.hexdigest(), data['hash-sha1'])

        self.assertTrue('hash-sha256' in data)
        sha256 = hashlib.sha256()
        sha256.update(TEST_DATA)
        self.assertEqual(sha256.hexdigest(), data['hash-sha256'])

        self.assertTrue('hash-sha512' in data)
        sha512 = hashlib.sha512()
        sha512.update(TEST_DATA)
        self.assertEqual(sha512.hexdigest(), data['hash-sha512'])
Example #9
0
    def test_pipeline_exceptions(self):
        def empty_func(bundle):
            raise Exception("test")

        pipelines = dict()
        pipelines['empty'] = FakePipeline('empty', empty_func)
        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()),
                                  'empty',
                                  dict(),
                                  'fake://blank',
                                  autosave=False,
                                  wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('exceptions' in data)
        self.assertEqual(data['exceptions'][0]['name'], "Exception")
        self.assertEqual(data['exceptions'][0]['msg'], "test")
Example #10
0
    def test_pipeline_process(self):
        def empty_func(bundle):
            bundle.data['called'] = True
            return bundle

        pipelines = dict()
        pipelines['empty'] = FakePipeline('empty', empty_func)
        thread = self._start_server(pipelines=pipelines)
        client = ProcessClient(thread.server._transport)

        data = client.process_url(str(uuid.uuid4()),
                                  'empty',
                                  dict(),
                                  'fake://blank',
                                  autosave=False,
                                  wait_for_result=True)

        self._stop_server(client, thread)

        self.assertTrue('called' in data)
        self.assertTrue(data['called'])