def test_sort_dict(self):
     unsorted = {
         'a': 1,
         'x': 4,
         'c': 3,
         'b': 2,
         'z': 6,
         'y': 5,
     }
     sorted = OrderedDict((
         ('a', 1),
         ('b', 2),
         ('c', 3),
         ('x', 4),
         ('y', 5),
         ('z', 6),
     ))
     self.assertEqual(sort_dict(unsorted), sorted)
 def test_sort_dict(self):
     unsorted = {
         'a': 1,
         'x': 4,
         'c': 3,
         'b': 2,
         'z': 6,
         'y': 5,
     }
     sorted = OrderedDict((
         ('a', 1),
         ('b', 2),
         ('c', 3),
         ('x', 4),
         ('y', 5),
         ('z', 6),
     ))
     self.assertEqual(sort_dict(unsorted), sorted)
 def test_process_flight_to_json(self):
     self.assertEqual(
         process_flight_to_json(deepcopy(PROCESS_FLIGHT)),
         simplejson.dumps(sort_dict(PROCESS_FLIGHT_JSON), indent=2))
 def test_node_to_jsondict(self):
     self.assertEqual(node_to_jsondict(KTI), sort_dict(KTI_JSONDICT))
 def test_node_to_json(self):
     self.assertEqual(node_to_json(KTI),
                      simplejson.dumps(sort_dict(KTI_JSONDICT)))
}

KTI = KeyTimeInstance(
    KTI_JSONDICT['index'],
    KTI_JSONDICT['name'],
    parse(KTI_JSONDICT['datetime']['value']),
    KTI_JSONDICT['latitude'],
    KTI_JSONDICT['longitude'],
)

PROCESS_FLIGHT_JSON = {
    'approach': {},
    'flight': {},
    'kpv': {},
    'kti': {
        KTI_NAME: [sort_dict(KTI_JSONDICT)]
    },
    'phases': {},
    'version': '0.1',
}

PROCESS_FLIGHT = {
    'approach': {},
    'flight': {},
    'kpv': {},
    'kti': {
        KTI_NAME: [KTI]
    },
    'phases': {},
}
 def test_node_to_jsondict(self):
     self.assertEqual(node_to_jsondict(KTI), sort_dict(KTI_JSONDICT))
 def test_node_to_json(self):
     self.assertEqual(node_to_json(KTI), simplejson.dumps(sort_dict(KTI_JSONDICT)))
 def test_sort_dict(self):
     unsorted = {"a": 1, "x": 4, "c": 3, "b": 2, "z": 6, "y": 5}
     sorted = OrderedDict((("a", 1), ("b", 2), ("c", 3), ("x", 4), ("y", 5), ("z", 6)))
     self.assertEqual(sort_dict(unsorted), sorted)
 def test_process_flight_to_json(self):
     self.assertEqual(
         process_flight_to_json(deepcopy(PROCESS_FLIGHT)), simplejson.dumps(sort_dict(PROCESS_FLIGHT_JSON), indent=2)
     )
    "name": "35 Ft Climbing",
}

KTI = KeyTimeInstance(
    KTI_JSONDICT["index"],
    KTI_JSONDICT["name"],
    parse(KTI_JSONDICT["datetime"]["value"]),
    KTI_JSONDICT["latitude"],
    KTI_JSONDICT["longitude"],
)

PROCESS_FLIGHT_JSON = {
    "approach": {},
    "flight": {},
    "kpv": {},
    "kti": {KTI_NAME: [sort_dict(KTI_JSONDICT)]},
    "phases": {},
    "version": "0.1",
}

PROCESS_FLIGHT = {"approach": {}, "flight": {}, "kpv": {}, "kti": {KTI_NAME: [KTI]}, "phases": {}}


class TestJsonTools(unittest.TestCase):
    def test_json_to_node(self):
        self.assertEqual(json_to_node(simplejson.dumps(KTI_JSONDICT.copy())), KTI)

    def test_json_to_process_flight(self):
        process_flight_json = deepcopy(PROCESS_FLIGHT_JSON)
        self.assertEqual(json_to_process_flight(simplejson.dumps(process_flight_json)), PROCESS_FLIGHT)
        # incompatible or missing version does not load