| Index: infra_libs/test/utils_test.py
|
| diff --git a/infra_libs/test/utils_test.py b/infra_libs/test/utils_test.py
|
| deleted file mode 100644
|
| index 4d4b396e7bac499e91c18408813c2319e39bc57e..0000000000000000000000000000000000000000
|
| --- a/infra_libs/test/utils_test.py
|
| +++ /dev/null
|
| @@ -1,128 +0,0 @@
|
| -# -*- encoding: utf-8 -*-
|
| -# Copyright 2015 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -import json
|
| -import os
|
| -import unittest
|
| -
|
| -import infra_libs
|
| -
|
| -
|
| -DATA_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data')
|
| -
|
| -
|
| -class _UtilTestException(Exception):
|
| - """Exception used inside tests."""
|
| -
|
| -
|
| -class ReadJsonTest(unittest.TestCase):
|
| - def test_read_from_file(self):
|
| - new_dict = infra_libs.read_json_as_utf8(
|
| - filename=os.path.join(DATA_DIR, 'utils_test_dict.json'))
|
| -
|
| - # Make sure all keys can be decoded as utf8
|
| - for key in new_dict.iterkeys():
|
| - self.assertIsInstance(key, str)
|
| - key.decode('utf-8') # should raise no exceptions
|
| -
|
| - # Make sure all values contain only utf8
|
| - self.assertIsInstance(new_dict['string'], str)
|
| - new_dict['string'].decode('utf-8')
|
| -
|
| - for value in new_dict['list_of_strings']:
|
| - self.assertIsInstance(value, str)
|
| - value.decode('utf-8')
|
| -
|
| - sub_dict = new_dict['clé accentuée']
|
| - for key, value in sub_dict.iteritems():
|
| - self.assertIsInstance(key, str)
|
| - self.assertIsInstance(value, str)
|
| -
|
| - key.decode('utf-8')
|
| - value.decode('utf-8')
|
| -
|
| - def test_read_from_string(self):
|
| - orig_dict = {"string": "prêt¿",
|
| - "list_of_strings": ["caractères", "accentués", "nous voilà"],
|
| - "clé accentuée": {"clé": "privée", "vie": "publique"},
|
| - }
|
| -
|
| - json_data = json.dumps(orig_dict)
|
| - new_dict = infra_libs.read_json_as_utf8(text=json_data)
|
| -
|
| - self.assertEqual(orig_dict, new_dict)
|
| -
|
| - # Make sure all keys can be decoded as utf8
|
| - for key in new_dict.iterkeys():
|
| - self.assertIsInstance(key, str)
|
| - key.decode('utf-8') # should raise no exceptions
|
| -
|
| - # Make sure all values contain only utf8
|
| - self.assertIsInstance(new_dict['string'], str)
|
| - new_dict['string'].decode('utf-8')
|
| -
|
| - for value in new_dict['list_of_strings']:
|
| - self.assertIsInstance(value, str)
|
| - value.decode('utf-8')
|
| -
|
| - sub_dict = new_dict['clé accentuée']
|
| - for key, value in sub_dict.iteritems():
|
| - self.assertIsInstance(key, str)
|
| - self.assertIsInstance(value, str)
|
| -
|
| - key.decode('utf-8')
|
| - value.decode('utf-8')
|
| -
|
| - def test_read_from_string_no_unicode(self):
|
| - # only numerical value. Keys have to be string in json.
|
| - orig_dict = {'1': 2,
|
| - '3': [4, 5., 7, None],
|
| - '7':{'8': 9, '10': 11}}
|
| - json_data = json.dumps(orig_dict)
|
| - new_dict = infra_libs.read_json_as_utf8(text=json_data)
|
| - self.assertEqual(orig_dict, new_dict)
|
| -
|
| - def test_dict_in_dict(self):
|
| - orig_dict = {'à': {'présent': {'ça': 'prétend marcher.'}}}
|
| - json_data = json.dumps(orig_dict)
|
| - new_dict = infra_libs.read_json_as_utf8(text=json_data)
|
| - self.assertEqual(orig_dict, new_dict)
|
| -
|
| - def test_dict_in_list(self):
|
| - orig_dict = ['à', {'présent': {'ça': 'prétend marcher.'}}]
|
| - json_data = json.dumps(orig_dict)
|
| - new_dict = infra_libs.read_json_as_utf8(text=json_data)
|
| - self.assertEqual(orig_dict, new_dict)
|
| -
|
| - def test_error_with_two_arguments(self):
|
| - with self.assertRaises(ValueError):
|
| - infra_libs.read_json_as_utf8(filename='filename', text='{}')
|
| -
|
| - def test_error_with_no_arguments(self):
|
| - with self.assertRaises(ValueError):
|
| - infra_libs.read_json_as_utf8()
|
| -
|
| -
|
| -class TemporaryDirectoryTest(unittest.TestCase):
|
| - def test_tempdir_no_error(self):
|
| - with infra_libs.temporary_directory() as tempdir:
|
| - self.assertTrue(os.path.isdir(tempdir))
|
| - # This should work.
|
| - with open(os.path.join(tempdir, 'test_tempdir_no_error.txt'), 'w') as f:
|
| - f.write('nonsensical content')
|
| - # And everything should have been cleaned up afterward
|
| - self.assertFalse(os.path.isdir(tempdir))
|
| -
|
| - def test_tempdir_with_exception(self):
|
| - with self.assertRaises(_UtilTestException):
|
| - with infra_libs.temporary_directory() as tempdir:
|
| - self.assertTrue(os.path.isdir(tempdir))
|
| - # Create a non-empty file to check that tempdir deletion works.
|
| - with open(os.path.join(tempdir, 'test_tempdir_no_error.txt'), 'w') as f:
|
| - f.write('nonsensical content')
|
| - raise _UtilTestException()
|
| -
|
| - # And everything should have been cleaned up afterward
|
| - self.assertFalse(os.path.isdir(tempdir))
|
|
|