Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1056)

Unified Diff: infra_libs/test/utils_test.py

Issue 2213143002: Add infra_libs as a bootstrap dependency. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Removed the ugly import hack Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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))

Powered by Google App Engine
This is Rietveld 408576698