# Path: diffoscope/comparators/json.py
# class JSONFile(File):
#     RE_FILE_EXTENSION = re.compile(r'\.json$')
# 
#     @staticmethod
#     def recognizes(file):
#         if JSONFile.RE_FILE_EXTENSION.search(file.name) is None:
#             return False
# 
#         with open(file.path) as f:
#             try:
#                 file.parsed = json.load(f, object_pairs_hook=collections.OrderedDict)
#             except ValueError:
#                 return False
# 
#         return True
# 
#     def compare_details(self, other, source=None):
#         difference = Difference.from_text(self.dumps(self), self.dumps(other),
#             self.path, other.path)
#         if difference:
#             return [difference]
# 
#         difference = Difference.from_text(self.dumps(self, sort_keys=False),
#                                           self.dumps(other, sort_keys=False),
#                                           self.path, other.path,
#                                           comment="ordering differences only")
#         return [difference]
# 
#     @staticmethod
#     def dumps(file, sort_keys=True):
#         if not hasattr(file, 'parsed'):
#             return ""
#         return json.dumps(file.parsed, indent=4, sort_keys=sort_keys)


import pytest
from diffoscope.comparators.json import JSONFile
from utils.data import load_fixture, get_data
from utils.nonexisting import assert_non_existing
#
# Copyright © 2016 Chris Lamb <lamby@debian.org>
#
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.





json1 = load_fixture('test1.json')
json2 = load_fixture('test2.json')
json3a = load_fixture('order1a.json')
json3b = load_fixture('order1b.json')
invalid_json = load_fixture('test_invalid.json')

def test_identification(json1):
    assert isinstance(json1, JSONFile)

def test_invalid(invalid_json):

# Path: diffoscope/comparators/json.py
# class JSONFile(File):
#     RE_FILE_EXTENSION = re.compile(r'\.json$')
# 
#     @staticmethod
#     def recognizes(file):
#         if JSONFile.RE_FILE_EXTENSION.search(file.name) is None:
#             return False
# 
#         with open(file.path) as f:
#             try:
#                 file.parsed = json.load(f, object_pairs_hook=collections.OrderedDict)
#             except ValueError:
#                 return False
# 
#         return True
# 
#     def compare_details(self, other, source=None):
#         difference = Difference.from_text(self.dumps(self), self.dumps(other),
#             self.path, other.path)
#         if difference:
#             return [difference]
# 
#         difference = Difference.from_text(self.dumps(self, sort_keys=False),
#                                           self.dumps(other, sort_keys=False),
#                                           self.path, other.path,
#                                           comment="ordering differences only")
#         return [difference]
# 
#     @staticmethod
#     def dumps(file, sort_keys=True):
#         if not hasattr(file, 'parsed'):
#             return ""
#         return json.dumps(file.parsed, indent=4, sort_keys=sort_keys)


# Path: tests/comparators/test_json.py
import pytest
from diffoscope.comparators.json import JSONFile
from utils.data import load_fixture, get_data
from utils.nonexisting import assert_non_existing

#
# Copyright © 2016 Chris Lamb <lamby@debian.org>
#
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.





json1 = load_fixture('test1.json')
json2 = load_fixture('test2.json')
json3a = load_fixture('order1a.json')
json3b = load_fixture('order1b.json')
invalid_json = load_fixture('test_invalid.json')

def test_identification(json1):
    assert isinstance(json1, JSONFile)

def test_invalid(invalid_json):

    assert not isinstance(invalid_json, JSONFile)