예제 #1
0
 def test_export(self):
     host = TestExporterTest.MyMockHost()
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN'
     ])
     exporter = TestExporter(host, options, TestExporterTest.MockGit,
                             TestExporterTest.MockBugzilla, MockWPTGitHub)
     exporter.do_export()
     self.assertEquals(exporter._github.calls, ['create_pr'])
     self.assertTrue(
         'WebKit export' in exporter._github.pull_requests_created[0][1])
     self.assertEquals(exporter._git.calls, [
         '/mock-checkout/WebKitBuild/w3c-tests/web-platform-tests', 'fetch',
         'checkout master', 'reset hard origin/master',
         'checkout new branch wpt-export-for-webkit-1234',
         'apply_mail_patch patch.temp --exclude *-expected.txt',
         'commit -a -m WebKit export of https://bugs.webkit.org/show_bug.cgi?id=1234',
         'remote ',
         'remote add USER https://[email protected]/USER/web-platform-tests.git',
         'remote get-url USER',
         'push USER wpt-export-for-webkit-1234:wpt-export-for-webkit-1234 -f',
         'checkout master', 'delete branch wpt-export-for-webkit-1234',
         'checkout master', 'reset hard origin/master'
     ])
     self.assertEquals(exporter._bugzilla.calls, [
         'fetch bug 1234',
         'post comment to bug 1234 : Submitted web-platform-tests pull request: https://github.com/w3c/web-platform-tests/pull/5678'
     ])
예제 #2
0
 def test_export_with_specific_branch(self):
     host = TestExporterTest.MyMockHost()
     host.web.responses.append({
         'status_code': 200,
         'body': '{"login": "******"}'
     })
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN', '-bn', 'wpt-export-branch'
     ])
     exporter = WebPlatformTestExporter(host, options,
                                        TestExporterTest.MockGit,
                                        TestExporterTest.MockBugzilla,
                                        MockWPTGitHub,
                                        TestExporterTest.MockWPTLinter)
     exporter.do_export()
     self.assertEquals(exporter._git.calls, [
         '/mock-checkout/WebKitBuild/w3c-tests/web-platform-tests', 'fetch',
         'checkout master', 'reset hard origin/master',
         'checkout new branch wpt-export-for-webkit-1234',
         'apply_mail_patch patch.temp ',
         'commit -a -m WebKit export of https://bugs.webkit.org/show_bug.cgi?id=1234',
         'remote ', 'remote add USER https://[email protected]/USER/wpt.git',
         'remote get-url USER',
         'push USER wpt-export-for-webkit-1234:wpt-export-branch -f',
         'checkout master', 'delete branch wpt-export-for-webkit-1234',
         'checkout master', 'reset hard origin/master'
     ])
예제 #3
0
 def test_export(self):
     host = TestExporterTest.MyMockHost()
     host.web.responses.append({'status_code': 200, 'body': '{"login": "******"}'})
     options = parse_args(['test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER', '-t', 'TOKEN'])
     exporter = WebPlatformTestExporter(host, options, TestExporterTest.MockGit, TestExporterTest.MockBugzilla, MockWPTGitHub, TestExporterTest.MockWPTLinter)
     exporter.do_export()
     self.assertEquals(exporter._github.calls, ['create_pr', 'add_label "webkit-export"'])
     self.assertTrue('WebKit export' in exporter._github.pull_requests_created[0][1])
     self.assertEquals(exporter._git.calls, [
         '/mock-checkout/WebKitBuild/w3c-tests/web-platform-tests',
         'fetch',
         'checkout master',
         'reset hard origin/master',
         'checkout new branch wpt-export-for-webkit-1234',
         'apply_mail_patch patch.temp ',
         'commit -a -m WebKit export of https://bugs.webkit.org/show_bug.cgi?id=1234',
         'remote ',
         'remote add USER https://[email protected]/USER/wpt.git',
         'remote get-url USER',
         'push USER wpt-export-for-webkit-1234:wpt-export-for-webkit-1234 -f',
         'checkout master',
         'delete branch wpt-export-for-webkit-1234',
         'checkout master',
         'reset hard origin/master'])
     self.assertEquals(exporter._bugzilla.calls, [
         'fetch bug 1234',
         'post comment to bug 1234 : Submitted web-platform-tests pull request: https://github.com/web-platform-tests/wpt/pull/5678'])
     self.assertEquals(mock_linter.calls, ['/mock-checkout/WebKitBuild/w3c-tests/web-platform-tests', 'lint'])
예제 #4
0
 def test_export_wrong_token(self):
     host = TestExporterTest.MyMockHost()
     host.web.responses.append({'status_code': 200, 'body': '{"login": "******"}'})
     options = parse_args(['test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER', '-t', 'TOKEN'])
     exporter = WebPlatformTestExporter(host, options, TestExporterTest.MockGit, TestExporterTest.MockBugzilla, MockWPTGitHub, TestExporterTest.MockWPTLinter)
     with self.assertRaises(Exception) as context:
         exporter.do_export()
     self.assertIn('OAuth token does not match the provided username', str(context.exception))
예제 #5
0
 def test_export_invalid_token(self):
     host = TestExporterTest.MyMockHost()
     host.web.responses.append({'status_code': 401})
     options = parse_args(['test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER', '-t', 'TOKEN'])
     exporter = WebPlatformTestExporter(host, options, TestExporterTest.MockGit, TestExporterTest.MockBugzilla, MockWPTGitHub, TestExporterTest.MockWPTLinter)
     with self.assertRaises(Exception) as context:
         exporter.do_export()
     self.assertIn('OAuth token is not valid', str(context.exception))
예제 #6
0
    def test_ignore_changes_to_w3c_import_log(self):
        host = TestExporterTest.MyMockHost()
        host._mockSCM.mock_format_patch_result = """
Subversion Revision: 231920
diff --git a/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log b/LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/w3c-import.log

+change to w3c import
"""
        options = parse_args(['test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER', '-t', 'TOKEN'])
        exporter = WebPlatformTestExporter(host, options, TestExporterTest.MockGit, TestExporterTest.MockBugzilla, MockWPTGitHub, TestExporterTest.MockWPTLinter)
        self.assertFalse(exporter.has_wpt_changes())
예제 #7
0
 def test_has_wpt_changes(self):
     host = TestExporterTest.MyMockHost()
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN'
     ])
     exporter = WebPlatformTestExporter(host, options,
                                        TestExporterTest.MockGit,
                                        TestExporterTest.MockBugzilla,
                                        MockWPTGitHub,
                                        TestExporterTest.MockWPTLinter)
     self.assertTrue(exporter.has_wpt_changes())
예제 #8
0
 def test_has_no_wpt_changes_for_no_diff(self):
     host = TestExporterTest.MyMockHost()
     host._mockSCM.mock_format_patch_result = None
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN'
     ])
     exporter = WebPlatformTestExporter(host, options,
                                        TestExporterTest.MockGit,
                                        TestExporterTest.MockBugzilla,
                                        MockWPTGitHub,
                                        TestExporterTest.MockWPTLinter)
     self.assertFalse(exporter.has_wpt_changes())
예제 #9
0
 def test_export_interactive_mode(self):
     host = TestExporterTest.MyMockHost()
     host.web.responses.append({
         'status_code': 200,
         'body': '{"login": "******"}'
     })
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN', '--interactive'
     ])
     exporter = WebPlatformTestExporter(host, options,
                                        TestExporterTest.MockGit,
                                        TestExporterTest.MockBugzilla,
                                        MockWPTGitHub,
                                        TestExporterTest.MockWPTLinter)
     exporter.do_export()
예제 #10
0
    def run(self, state):
        if self._options.non_interactive:
            return

        bug_id = state.get("bug_id")
        if not bug_id:
            return

        args = ["--bug", str(bug_id), "--create-pr"]

        if self._options.git_commit:
            args.append("--git-commit")
            args.append(self._options.git_commit)

        test_exporter = WebPlatformTestExporter(self._tool, parse_args(args))
        message = 'Would you like to export the web-platform-tests changes to a WPT GitHub repository?'
        if test_exporter.has_wpt_changes() and self._tool.user.confirm(
                message):
            test_exporter.do_export()
예제 #11
0
 def test_export_with_specific_branch(self):
     host = TestExporterTest.MyMockHost()
     options = parse_args([
         'test_exporter.py', '-g', 'HEAD', '-b', '1234', '-c', '-n', 'USER',
         '-t', 'TOKEN', '-bn', 'wpt-export-branch'
     ])
     exporter = TestExporter(host, options, TestExporterTest.MockGit,
                             TestExporterTest.MockBugzilla, MockWPTGitHub,
                             TestExporterTest.MockWPTLinter)
     exporter.do_export()
     self.assertEquals(exporter._git.calls, [
         '/mock-checkout/WebKitBuild/w3c-tests/web-platform-tests', 'fetch',
         'checkout master', 'reset hard origin/master',
         'checkout new branch wpt-export-for-webkit-1234',
         'apply_mail_patch patch.temp --exclude *-expected.txt --exclude *.worker.html --exclude *.any.html --exclude *.any.worker.html',
         'commit -a -m WebKit export of https://bugs.webkit.org/show_bug.cgi?id=1234',
         'remote ',
         'remote add USER https://[email protected]/USER/web-platform-tests.git',
         'remote get-url USER',
         'push USER wpt-export-for-webkit-1234:wpt-export-branch -f',
         'checkout master', 'delete branch wpt-export-for-webkit-1234',
         'checkout master', 'reset hard origin/master'
     ])