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

Unified Diff: third_party/typ/typ/tests/json_results_test.py

Issue 627763002: Add new 'typ' python testing framework to third_party/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: upload to typ v0.8.1, update README.chromium Created 6 years, 2 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: third_party/typ/typ/tests/json_results_test.py
diff --git a/third_party/typ/typ/tests/json_results_test.py b/third_party/typ/typ/tests/json_results_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..363ceabc5e5fae6f403e1a834c48183fb34c8b30
--- /dev/null
+++ b/third_party/typ/typ/tests/json_results_test.py
@@ -0,0 +1,107 @@
+# Copyright 2014 Dirk Pranke. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import unittest
+
+from typ import json_results
+
+
+class TestMakeUploadRequest(unittest.TestCase):
+ maxDiff = 4096
+
+ def test_basic_upload(self):
+ results = json_results.ResultSet()
+ full_results = json_results.make_full_results([], 0, [], results)
+ url, content_type, data = json_results.make_upload_request(
+ 'localhost', 'fake_builder_name', 'fake_master', 'fake_test_type',
+ full_results)
+
+ self.assertEqual(
+ content_type,
+ 'multipart/form-data; '
+ 'boundary=-J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y-')
+
+ self.assertEqual(url, 'http://localhost/testfile/upload')
+ self.assertMultiLineEqual(
+ data,
+ ('---J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y-\r\n'
+ 'Content-Disposition: form-data; name="builder"\r\n'
+ '\r\n'
+ 'fake_builder_name\r\n'
+ '---J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y-\r\n'
+ 'Content-Disposition: form-data; name="master"\r\n'
+ '\r\n'
+ 'fake_master\r\n'
+ '---J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y-\r\n'
+ 'Content-Disposition: form-data; name="testtype"\r\n'
+ '\r\n'
+ 'fake_test_type\r\n'
+ '---J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y-\r\n'
+ 'Content-Disposition: form-data; name="file"; '
+ 'filename="full_results.json"\r\n'
+ 'Content-Type: application/json\r\n'
+ '\r\n'
+ '{"version": 3, "interrupted": false, "path_delimiter": ".", '
+ '"seconds_since_epoch": 0, '
+ '"num_failures_by_type": {"FAIL": 0, "PASS": 0, "SKIP": 0}, '
+ '"tests": {}}\r\n'
+ '---J-S-O-N-R-E-S-U-L-T-S---B-O-U-N-D-A-R-Y---\r\n'))
+
+
+class TestMakeFullResults(unittest.TestCase):
+ maxDiff = 2048
+
+ def test_basic(self):
+ test_names = ['foo_test.FooTest.test_fail',
+ 'foo_test.FooTest.test_pass',
+ 'foo_test.FooTest.test_skip']
+
+ result_set = json_results.ResultSet()
+ result_set.add(
+ json_results.Result('foo_test.FooTest.test_fail',
+ json_results.ResultType.Failure, 0, 0, 0,
+ unexpected=True))
+ result_set.add(json_results.Result('foo_test.FooTest.test_pass',
+ json_results.ResultType.Pass,
+ 0, 0, 0))
+ result_set.add(json_results.Result('foo_test.FooTest.test_skip',
+ json_results.ResultType.Skip,
+ 0, 0, 0, unexpected=False))
+
+ full_results = json_results.make_full_results(
+ ['foo=bar'], 0, test_names, result_set)
+ expected_full_results = {
+ 'foo': 'bar',
+ 'interrupted': False,
+ 'num_failures_by_type': {
+ 'FAIL': 1,
+ 'PASS': 1,
+ 'SKIP': 1},
+ 'path_delimiter': '.',
+ 'seconds_since_epoch': 0,
+ 'tests': {
+ 'foo_test': {
+ 'FooTest': {
+ 'test_fail': {
+ 'expected': 'PASS',
+ 'actual': 'FAIL',
+ 'is_unexpected': True},
+ 'test_pass': {
+ 'expected': 'PASS',
+ 'actual': 'PASS'},
+ 'test_skip': {
+ 'expected': 'SKIP',
+ 'actual': 'SKIP'}}}},
+ 'version': 3}
+ self.assertEqual(full_results, expected_full_results)

Powered by Google App Engine
This is Rietveld 408576698