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

Unified Diff: tools/release/update_node_test.py

Issue 2748623003: Adding test (Closed)
Patch Set: Created 3 years, 9 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 | « tools/release/update_node.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/release/update_node_test.py
diff --git a/tools/release/update_node_test.py b/tools/release/update_node_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..6a7a303bbad770497a3a34803ebd87d45ecb8ade
--- /dev/null
+++ b/tools/release/update_node_test.py
@@ -0,0 +1,93 @@
+#!/usr/bin/env python
+# Copyright 2017 the V8 project 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 os
+import shutil
+import subprocess
+import sys
+import tempfile
+import unittest
+
+import update_node
Franzi 2017/03/14 10:02:42 When are *test.py tests run? Only manually?
+
+# Overwrite repositories to test only with gtest.
+update_node.REPOSITORIES = [ [""], ["testing", "gtest"]]
+
+# Base paths.
+BASE_DIR = os.path.dirname(os.path.abspath(__file__))
+TEST_DATA = os.path.join(BASE_DIR, 'testdata')
+
+# Expectations.
+EXPECTED_GITIGNORE = """
+/testing/gtest/*
+!/testing/gtest/include
+/testing/gtest/include/*
+!/testing/gtest/include/gtest
+/testing/gtest/include/gtest/*
+!/testing/gtest/include/gtest/gtest_prod.h
+!/third_party/jinja2
+!/third_party/markupsafe
+/unrelated
+"""
+
+ADDED_FILES = [
+ 'v8_new',
+ 'new/v8_new',
+ 'baz/v8_new',
+ 'testing/gtest/gtest_new',
+ 'testing/gtest/new/gtest_new',
+ 'testing/gtest/baz/gtest_new',
+]
+
+REMOVED_FILES = [
+ 'delete_me',
+ 'baz/delete_me',
+ 'testing/gtest/delete_me',
+ 'testing/gtest/baz/delete_me',
+]
+
+def gitify(path):
+ files = os.listdir(path)
+ subprocess.check_call(['git', 'init'], cwd=path)
+ subprocess.check_call(['git', 'add'] + files, cwd=path)
+ subprocess.check_call(['git', 'commit', '-m="Initial"'], cwd=path)
+
+
+class TestUpdateNode(unittest.TestCase):
+ def setUp(self):
+ self.workdir = tempfile.mkdtemp(prefix='tmp_test_node_')
+
+ def tearDown(self):
+ shutil.rmtree(self.workdir)
+
+ def testUpdate(self):
+ v8_cwd = os.path.join(self.workdir, 'v8')
+ gtest_cwd = os.path.join(self.workdir, 'v8', 'testing', 'gtest')
+ node_cwd = os.path.join(self.workdir, 'node')
+
+ # Set up V8 test fixture.
+ shutil.copytree(src=os.path.join(TEST_DATA, 'v8'), dst=v8_cwd)
+ gitify(v8_cwd)
+
+ # Set up gtest test fixture.
+ shutil.copytree(src=os.path.join(TEST_DATA, 'gtest'), dst=gtest_cwd)
+ gitify(gtest_cwd)
+
+ # Set up node test fixture (no git repo required).
+ shutil.copytree(src=os.path.join(TEST_DATA, 'node'), dst=node_cwd)
+
+ # Run update script.
+ update_node.Main([v8_cwd, node_cwd])
+
+ # Check expectations.
+ with open(os.path.join(node_cwd, 'deps', 'v8', '.gitignore')) as f:
+ actual_gitignore = f.read()
+ self.assertEquals(EXPECTED_GITIGNORE.strip(), actual_gitignore.strip())
+ for f in ADDED_FILES:
+ added_file = os.path.join(node_cwd, 'deps', 'v8', *f.split('/'))
+ self.assertTrue(os.path.exists(added_file))
+ for f in REMOVED_FILES:
+ removed_file = os.path.join(node_cwd, 'deps', 'v8', *f.split('/'))
+ self.assertFalse(os.path.exists(removed_file))
« no previous file with comments | « tools/release/update_node.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698