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

Unified Diff: media/tools/layout_tests/test_expectations_unittest.py

Issue 7671049: Refactor/Simplify the test expectation code in media/tools/layout_tests/ (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Modification based on CR comments. Created 9 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
« no previous file with comments | « media/tools/layout_tests/test_expectations.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/tools/layout_tests/test_expectations_unittest.py
diff --git a/media/tools/layout_tests/test_expectations_unittest.py b/media/tools/layout_tests/test_expectations_unittest.py
index 7979561b42fa268c9ddef5c0d45541920ab409d0..f3380f0d1ebbb92ed78a01ab2558cda52dfacd4a 100755
--- a/media/tools/layout_tests/test_expectations_unittest.py
+++ b/media/tools/layout_tests/test_expectations_unittest.py
@@ -3,223 +3,52 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-"""A unit test module for TestExpectationManager."""
-
-from datetime import date
-from datetime import datetime
-from datetime import timedelta
-import os
-import shutil
-import time
import unittest
-from test_expectations import TestExpectationsManager
-
-
-class TestTestExpectationsManager(unittest.TestCase):
- """A unit test class for TestExpectationManager."""
- test_dir = u'test_dir'
- cleaned = False
-
- def setUp(self):
- if not TestTestExpectationsManager.cleaned:
- if os.path.exists(self.test_dir):
- shutil.rmtree(self.test_dir)
- os.mkdir(self.test_dir)
- TestTestExpectationsManager.cleaned = True
-
- def verify_test_expectaion_format(self, file_name, media):
- """Verify the test expectation format in the file.
-
- Args:
- file_name: a file name to be verified.
- media: a boolean to indicate whether the test is for media
- or not.
-
- Returns:
- a boolean indicating whether the file is in test expectation
- format.
- """
- file_object = open(file_name, 'r')
- firstline = file_object.readline()
- if ('These are the layout test expectations for the '
- 'Chromium port(s) of WebKit.') not in firstline:
- return False
- # Check media related test case file is there.
- verify_media = not media
- if media:
- for line in file_object:
- if 'media' in line:
- verify_media = True
- file_object.close()
- return verify_media
-
- def verify_test_expectaion_format_in_csv(self, file_name):
- """Verify the CSV file has information parsed.
-
- Args:
- file_name: file name to be examined.
-
- Returns:
- a boolean that indicates that the CSV file contains information
- parsed from test expectation file.
- """
- file_object = open(file_name, 'r')
- firstline = file_object.readline()
- file_object.close()
- return 'TestCase' in firstline
-
- def test_get_and_save_content(self):
- """Test get_and_save_content method.
-
- Also, test several other methods.
- """
- # Get all test cases.
- result_file = os.path.join(self.test_dir,
- 'test_get_and_save_content.txt')
-
- test_expectations_manager = TestExpectationsManager()
- test_expectations_manager.get_and_save_content(
- test_expectations_manager.DEFAULT_TEST_EXPECTATION_LOCATION,
- result_file)
-
- self.assertTrue(
- self.verify_test_expectaion_format(result_file, False))
-
- # Get media test cases from local all test cases.
- result_file_media = os.path.join(self.test_dir,
- 'test_get_and_save_content_m.txt')
-
- test_expectations_manager = TestExpectationsManager()
- test_expectations_manager.get_and_save_content_media_only(
- result_file, result_file_media)
-
- self.assertTrue(
- self.verify_test_expectaion_format(result_file_media, True))
-
- # Get media test cases from local all test cases.
- result_file_media_csv = os.path.join(
- self.test_dir, 'test_get_and_save_content_m.csv')
-
- test_expectations_manager.get_and_parse_content(
- result_file, result_file_media_csv, True)
-
- elements = test_expectations_manager.get_test_case_element(
- 'media/restore-from-page-cache.html',
- ['TEXT', 'UNIMPLEMENTED', 'RELEASE'])
- self.assertEqual(
- elements, ['N', 'N', 'N'],
- 'returned element of GetTestCaseElement is wrong')
-
- field_names = ['SKIP', 'UNIMPLEMENTED', 'KNOWNISSUE']
- field_name_indexes = test_expectations_manager.get_column_indexes(
- field_names)
- expected_filed_name_indexes = [6, 22, 23]
- self.assertEqual(field_name_indexes, expected_filed_name_indexes,
- 'incorrect field indexes')
-
- def test_parse_content_from_svn(self):
- """Test get_and_parse_content method using SVN."""
- self.parse_content_from_svn_test_helper(False)
-
- def test_parse_content_from_svn_media(self):
- """Test get_and_parse_content method using SVN (only media)."""
- self.parse_content_from_svn_test_helper(True)
-
- def parse_content_from_svn_test_helper(self, media):
- """Test get_and_parse_content method using SVN.
-
- Args:
- media: True if this is for media tests.
- """
- media_string = 'all'
- if media:
- media_string = 'media'
- result_file = os.path.join(
- self.test_dir,
- 'test_parse_content_from_svn_%s.csv' % media_string)
- test_expectations_manager = TestExpectationsManager()
- test_expectations_manager.get_and_parse_content(
- test_expectations_manager.DEFAULT_TEST_EXPECTATION_LOCATION,
- result_file, media)
-
- self.assertTrue(test_expectations_manager.testcases > 0)
-
- self.verify_test_expectaion_format_in_csv(result_file)
-
- def test_generate_link_for_cbug(self):
- """Test generate_link_for_bug for a chromium bug."""
- self.generate_link_for_bug_helper(
- 'BUGCR1234',
- 'http://code.google.com/p/chromium/issues/detail?id=1234')
-
- def test_generate_link_for_wbug(self):
- """Test generate_link_for_bug for a webkit bug."""
- self.generate_link_for_bug_helper(
- 'BUGWK1234',
- 'https://bugs.webkit.org/show_bug.cgi?id=1234')
-
- def test_generate_link_for_pbug(self):
- """Test generate_link_for_bug for person."""
- self.generate_link_for_bug_helper('BUGIMASAKI',
- 'mailto:imasaki@chromium.org')
-
- def generate_link_for_bug_helper(self, bug_text, expected_link):
- """A helper for generating link test."""
- test_expectations_manager = TestExpectationsManager()
- link = test_expectations_manager.generate_link_for_bug(bug_text)
- self.assertEqual(link, expected_link, 'link generated are not correct')
-
- def test_te_diff_between_times(self):
- test_expectations_manager = TestExpectationsManager()
- now = time.time()
- past = datetime.now() - timedelta(days=4)
- past = time.mktime(past.timetuple())
- result_list = test_expectations_manager.get_te_diff_between_times(
- test_expectations_manager.DEFAULT_TEST_EXPECTATION_DIR,
- now, past, ['media/audio-repaint.html'], -1, True)
- self.assertTrue(result_list is not None)
-
- def test_te_diff_between_times_no_changecheck(self):
- test_expectations_manager = TestExpectationsManager()
- now = time.time()
- past = datetime.now() - timedelta(weeks=2)
- past = time.mktime(past.timetuple())
- result_list = test_expectations_manager.get_te_diff_between_times(
- test_expectations_manager.DEFAULT_TEST_EXPECTATION_DIR,
- now, past, ['media/audio-repaint.html'], -1, False)
- self.assertTrue(result_list is not None)
-
- def test_te_diff_between_times_no_changecheck_with_pattern(self):
- test_expectations_manager = TestExpectationsManager()
- now = time.time()
- past = datetime.now() - timedelta(weeks=2)
- past = time.mktime(past.timetuple())
- result_list = test_expectations_manager.get_te_diff_between_times(
- test_expectations_manager.DEFAULT_TEST_EXPECTATION_DIR,
- now, past, ['media/audio-repaint.html'], -1, False)
- self.assertTrue(result_list is not None)
-
- def test_get_all_column_names_no_other_field(self):
- test_expectations_manager = TestExpectationsManager()
- column_names = test_expectations_manager.get_all_column_names(False,
- True)
- other_field_column_names = test_expectations_manager.OTHER_FIELD_NAMES
- for other_field_column_name in other_field_column_names:
- self.assertFalse(other_field_column_name in column_names)
-
- def test_get_all_column_names_no_comment_field(self):
- test_expectations_manager = TestExpectationsManager()
- column_names = test_expectations_manager.get_all_column_names(True,
- False)
- other_field_column_names = (
- test_expectations_manager.COMMENT_COLUMN_NAMES)
- for other_field_column_name in other_field_column_names:
- self.assertFalse(other_field_column_name in column_names)
-
-
-def main():
- test_suite = unittest.TestLoader().loadTestsFromTestCase(
- TestTestExpectationsManager)
-
- unittest.TextTestRunner(verbosity=2).run(test_suite)
+from test_expectations import TestExpectations
+
+
+class TestTestExpectations(unittest.TestCase):
+
+ def testParseLine(self):
+ line = "BUGCR86714 MAC GPU : media/video-zoom.html = CRASH IMAGE"
+ comments = 'Comments'
+ expected_map = {'CRASH': True, 'IMAGE': True, 'Bugs': ['BUGCR86714'],
+ 'Comments': 'Comments', 'MAC': True, 'GPU': True}
+ self.assertEquals(TestExpectations.ParseLine(line, comments),
+ expected_map)
+
+ def testParseLineWithLineComments(self):
+ line = "BUGCR86714 MAC GPU : media/video-zoom.html = CRASH IMAGE // foo"
+ comments = 'Comments'
+ expected_map = {'CRASH': True, 'IMAGE': True, 'Bugs': ['BUGCR86714'],
+ 'Comments': 'Comments foo', 'MAC': True, 'GPU': True}
+ self.assertEquals(TestExpectations.ParseLine(line, comments),
+ expected_map)
+
+ def testParseLineWithLineGPUComments(self):
+ line = "BUGCR86714 MAC : media/video-zoom.html = CRASH IMAGE // GPU"
+ comments = 'Comments'
+ expected_map = {'CRASH': True, 'IMAGE': True, 'Bugs': ['BUGCR86714'],
+ 'Comments': 'Comments GPU', 'MAC': True}
+ self.assertEquals(TestExpectations.ParseLine(line, comments),
+ expected_map)
+
+ def testExtractTestOrDirectoryName(self):
+ line = ('BUGWK58013 MAC GPU : compositing/scaling/'
+ 'tiled-layer-recursion.html = CRASH')
+ self.assertEquals(TestExpectations.ExtractTestOrDirectoryName(line),
+ 'compositing/scaling/tiled-layer-recursion.html')
+
+ def testExtractTestOrDirectoryNameWithDirName(self):
+ line = 'BUGWK43668 SKIP : media/track/ = TIMEOUT'
+ self.assertEquals(TestExpectations.ExtractTestOrDirectoryName(line),
+ 'media/track/')
+
+ def testExtractTestOrDirectoryNameWithException(self):
+ self.assertRaises(ValueError,
+ TestExpectations.ExtractTestOrDirectoryName, 'Foo')
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « media/tools/layout_tests/test_expectations.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698