diff --git a/WORKSPACE b/WORKSPACE index 430dfe7f07..69bfda230a 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -52,7 +52,8 @@ _piptool_install() git_repository( name = "subpar", remote = "https://github.com/google/subpar", - tag = "1.1.0", + # HEAD as of 2018/02/15 + commit = "1f695ee5d42585a66d9dd9b71219eb8551e59c89", ) # Test data for WHL tool testing. diff --git a/tools/BUILD b/tools/BUILD index a2e3977403..29ffe59c4b 100644 --- a/tools/BUILD +++ b/tools/BUILD @@ -17,3 +17,14 @@ licenses(["notice"]) # Apache 2.0 # This is generated and updated by ./update_tools.sh exports_files(["piptool.par", "whltool.par"]) + +py_test( + name = "par_test", + srcs = ["par_test.py"], + data = [ + "//rules_python:piptool.par", + "//rules_python:whltool.par", + ":piptool.par", + ":whltool.par", + ], +) diff --git a/tools/par_test.py b/tools/par_test.py new file mode 100644 index 0000000000..2ea808c93e --- /dev/null +++ b/tools/par_test.py @@ -0,0 +1,45 @@ +# Copyright 2017 The Bazel Authors. 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 hashlib +import os +import unittest + + +def TestData(name): + return os.path.join(os.environ['TEST_SRCDIR'], 'io_bazel_rules_python', name) + + +class WheelTest(unittest.TestCase): + + def test_piptool_matches(self): + with open(TestData('rules_python/piptool.par'), 'r') as f: + built = f.read() + with open(TestData('tools/piptool.par'), 'r') as f: + checked_in = f.read() + self.assertEquals( + hashlib.sha256(built).hexdigest(), hashlib.sha256(checked_in).hexdigest(), + 'The checked in tools/piptool.par does not match the latest build.') + + def test_whltool_matches(self): + with open(TestData('rules_python/whltool.par'), 'r') as f: + built = f.read() + with open(TestData('tools/whltool.par'), 'r') as f: + checked_in = f.read() + self.assertEquals( + hashlib.sha256(built).hexdigest(), hashlib.sha256(checked_in).hexdigest(), + 'The checked in tools/whltool.par does not match the latest build.') + +if __name__ == '__main__': + unittest.main() diff --git a/tools/piptool.par b/tools/piptool.par index 206a33d322..b7a62c5563 100755 Binary files a/tools/piptool.par and b/tools/piptool.par differ diff --git a/tools/whltool.par b/tools/whltool.par index fece5b067e..8e2f34250d 100755 Binary files a/tools/whltool.par and b/tools/whltool.par differ