1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#!/usr/bin/env python
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# Copyright 2013 The Chromium Authors. All rights reserved.
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)# found in the LICENSE file.
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)from json_comment_eater import Nom
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)import unittest
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class JsonCommentEaterTest(unittest.TestCase):
10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  def _Load(self, test_name):
11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    '''Loads the input and expected output for |test_name| as given by reading
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    in |test_name|.json and |test_name|_expected.json, and returns the string
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    contents as a tuple in that order.
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    '''
15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    def read(file_name):
16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      with open(file_name, 'r') as f:
17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        return f.read()
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    return [read(pattern % test_name)
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)            for pattern in ('%s.json', '%s_expected.json')]
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  def testEverything(self):
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    json, expected_json = self._Load('everything')
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    self.assertEqual(expected_json, Nom(json))
24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)if __name__ == '__main__':
26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  unittest.main()
27