Ejemplo n.º 1
0
    def test_flatten_scan_minimal(self):
        test_json = self.get_test_loc('json2csv/minimal.json')
        scan = json2csv.load_scan(test_json)
        headers = OrderedDict([
            ('info', []),
            ('license', []),
            ('copyright', []),
            ('email', []),
            ('url', []),
            ('package', []),
        ])
        result = list(json2csv.flatten_scan(scan, headers))
        expected_headers = OrderedDict([
            ('info', ['Resource', 'scan_errors']),
            ('license', [
                'license__key', 'license__score', 'license__short_name',
                'license__category', 'license__owner', 'license__homepage_url',
                'license__text_url', 'license__dejacode_url',
                'license__spdx_license_key', 'license__spdx_url', 'start_line',
                'end_line'
            ]), ('copyright', ['copyright', 'copyright_holder']),
            ('email', []), ('url', []), ('package', [])
        ])
        assert expected_headers == headers

        expected = self.get_test_loc('json2csv/minimal.json-expected')
        expected = json.load(codecs.open(expected, encoding='utf-8'),
                             object_pairs_hook=OrderedDict)
        assert expected == result
Ejemplo n.º 2
0
    def test_key_ordering(self):
        test_json = self.get_test_loc('json2csv/key_order.json')
        scan = json2csv.load_scan(test_json)
        headers = OrderedDict([
            ('info', []),
            ('license', []),
            ('copyright', []),
            ('email', []),
            ('url', []),
            ('package', []),
        ])
        result = list(json2csv.flatten_scan(scan, headers))
        expected_headers = OrderedDict([('info', [
            'Resource', 'type', 'name', 'extension', 'date', 'size', 'sha1',
            'md5', 'files_count', 'mime_type', 'file_type',
            'programming_language', 'is_binary', 'is_text', 'is_archive',
            'is_media', 'is_source', 'is_script', 'scan_errors'
        ]), ('license', []), ('copyright', []), ('email', []), ('url', []),
                                        ('package', [])])
        assert expected_headers == headers

        expected = [
            OrderedDict([('Resource', '/code/srp_vfy.c'), ('type', 'file'),
                         ('name', 'srp_vfy.c'), ('extension', '.c'),
                         ('date', '2016-11-10'), ('size', 17428),
                         ('sha1', 'fa622c0499367a7e551d935c4c7394d5dfc31b26'),
                         ('md5', '4e02508d6433c8893e72fd521f36b37a'),
                         ('files_count', None), ('mime_type', 'text/plain'),
                         ('file_type', 'ASCIItext'),
                         ('programming_language', 'C'), ('is_binary', None),
                         ('is_text', True), ('is_archive', None),
                         ('is_media', None), ('is_source', True),
                         ('is_script', None), ('scan_errors', '')]),
            OrderedDict([('Resource', '/code/srp_lib.c'), ('type', 'file'),
                         ('name', 'srp_lib.c'), ('extension', '.c'),
                         ('date', '2016-11-10'), ('size', 7302),
                         ('sha1', '624360fb75baf8f3498f6d70f7b3c66ed03bfa6c'),
                         ('md5', 'b5c2f56afc2477d5a1768f97b314fe0f'),
                         ('files_count', None), ('mime_type', 'text/x-c'),
                         ('file_type', 'Csource, ASCIItext'),
                         ('programming_language', 'C'), ('is_binary', None),
                         ('is_text', True), ('is_archive', None),
                         ('is_media', None), ('is_source', True),
                         ('is_script', None), ('scan_errors', '')]),
            OrderedDict([('Resource', '/code/build.info'), ('type', 'file'),
                         ('name', 'build.info'), ('extension', '.info'),
                         ('date', '2016-11-10'), ('size', 65),
                         ('sha1', '994b9ec16ec11f96a1dfade472ecec8c5c837ab4'),
                         ('md5', 'eaacdd82c253a8967707c431cca6227e'),
                         ('files_count', None), ('mime_type', 'text/plain'),
                         ('file_type', 'ASCIItext'),
                         ('programming_language', None), ('is_binary', None),
                         ('is_text', True), ('is_archive', None),
                         ('is_media', None), ('is_source', None),
                         ('is_script', None), ('scan_errors', '')])
        ]

        assert expected == result
Ejemplo n.º 3
0
 def test_flatten_scan_minimal(self):
     test_json = self.get_test_loc('json2csv/minimal.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
     ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_file = self.get_test_loc('json2csv/minimal.json-expected')
     check_json(result, expected_file)
Ejemplo n.º 4
0
 def test_flatten_scan_minimal(self):
     test_json = self.get_test_loc('json2csv/minimal.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
         ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_file = self.get_test_loc('json2csv/minimal.json-expected')
     check_json(result, expected_file)
Ejemplo n.º 5
0
 def test_can_process_package_license_when_license_value_is_null(self):
     test_json = self.get_test_loc('json2csv/package_license_value_null.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
         ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_file = self.get_test_loc('json2csv/package_license_value_null.json-expected')
     check_json(result, expected_file)
Ejemplo n.º 6
0
 def test_can_process_package_license_when_license_value_is_null(self):
     test_json = self.get_test_loc(
         'json2csv/package_license_value_null.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
     ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_file = self.get_test_loc(
         'json2csv/package_license_value_null.json-expected')
     check_json(result, expected_file)
Ejemplo n.º 7
0
 def test_flatten_scan_full(self):
     test_json = self.get_test_loc('json2csv/full.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
     ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_headers = OrderedDict([
         ('info', [
             'Resource', 'type', 'name', 'extension', 'date', 'size',
             'sha1', 'md5', 'files_count', 'mime_type', 'file_type',
             'programming_language', 'is_binary', 'is_text', 'is_archive',
             'is_media', 'is_source', 'is_script', 'scan_errors'
         ]),
         ('license', [
             'license__key', 'license__score', 'license__short_name',
             'license__category', 'license__owner', 'license__homepage_url',
             'license__text_url', 'license__dejacode_url',
             'license__spdx_license_key', 'license__spdx_url', 'start_line',
             'end_line'
         ]), ('copyright', ['copyright', 'copyright_holder', 'author']),
         ('email', ['email']), ('url', ['url']),
         ('package', [
             'package__type', 'package__name', 'package__version',
             'package__primary_language', 'package__summary',
             'package__description', 'package__authors',
             'package__homepage_url', 'package__notes',
             'package__download_urls', 'package__bug_tracking_url',
             'package__vcs_repository', 'package__copyright_top_level',
             'package__copyrights', 'package__asserted_licenses'
         ])
     ])
     assert expected_headers == headers
     expected = self.get_test_loc('json2csv/full.json-expected')
     expected = json.load(codecs.open(expected, encoding='utf-8'),
                          object_pairs_hook=OrderedDict)
     assert expected == result
Ejemplo n.º 8
0
 def test_json_with_no_keys_does_not_error_out(self):
     # this scan has no results at all
     test_json = self.get_test_loc('json2csv/no_keys.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
     ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
     ])
     assert expected_headers == headers
     assert [] == result
Ejemplo n.º 9
0
 def test_json_with_no_keys_does_not_error_out(self):
     # this scan has no results at all
     test_json = self.get_test_loc('json2csv/no_keys.json')
     scan = json2csv.load_scan(test_json)
     headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
         ])
     result = list(json2csv.flatten_scan(scan, headers))
     expected_headers = OrderedDict([
         ('info', []),
         ('license', []),
         ('copyright', []),
         ('email', []),
         ('url', []),
         ('package', []),
         ])
     assert expected_headers == headers
     assert [] == result
Ejemplo n.º 10
0
 def test_can_process_html_app_and_regular_json_the_same_way(self):
     test_html = self.get_test_loc('json2csv/minimal_html_app_data.json')
     test_json = self.get_test_loc('json2csv/minimal.json')
     assert json2csv.load_scan(test_html) == json2csv.load_scan(test_json)
Ejemplo n.º 11
0
 def test_can_process_html_app_and_regular_json_the_same_way(self):
     test_html = self.get_test_loc('json2csv/minimal_html_app_data.json')
     test_json = self.get_test_loc('json2csv/minimal.json')
     assert json2csv.load_scan(test_html) == json2csv.load_scan(test_json)