michael@0: #!/usr/bin/env python michael@0: michael@0: import os michael@0: import unittest michael@0: from manifestparser import TestManifest michael@0: michael@0: here = os.path.dirname(os.path.abspath(__file__)) michael@0: michael@0: class TestTestManifest(unittest.TestCase): michael@0: """Test the Test Manifest""" michael@0: michael@0: def test_testmanifest(self): michael@0: # Test filtering based on platform: michael@0: filter_example = os.path.join(here, 'filter-example.ini') michael@0: manifest = TestManifest(manifests=(filter_example,)) michael@0: self.assertEqual([i['name'] for i in manifest.active_tests(os='win', disabled=False, exists=False)], michael@0: ['windowstest', 'fleem']) michael@0: self.assertEqual([i['name'] for i in manifest.active_tests(os='linux', disabled=False, exists=False)], michael@0: ['fleem', 'linuxtest']) michael@0: michael@0: # Look for existing tests. There is only one: michael@0: self.assertEqual([i['name'] for i in manifest.active_tests()], michael@0: ['fleem']) michael@0: michael@0: # You should be able to expect failures: michael@0: last_test = manifest.active_tests(exists=False, toolkit='gtk2')[-1] michael@0: self.assertEqual(last_test['name'], 'linuxtest') michael@0: self.assertEqual(last_test['expected'], 'pass') michael@0: last_test = manifest.active_tests(exists=False, toolkit='cocoa')[-1] michael@0: self.assertEqual(last_test['expected'], 'fail') michael@0: michael@0: def test_comments(self): michael@0: """ michael@0: ensure comments work, see michael@0: https://bugzilla.mozilla.org/show_bug.cgi?id=813674 michael@0: """ michael@0: comment_example = os.path.join(here, 'comment-example.ini') michael@0: manifest = TestManifest(manifests=(comment_example,)) michael@0: self.assertEqual(len(manifest.tests), 8) michael@0: names = [i['name'] for i in manifest.tests] michael@0: self.assertFalse('test_0202_app_launch_apply_update_dirlocked.js' in names) michael@0: michael@0: michael@0: if __name__ == '__main__': michael@0: unittest.main()