diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-03-13 13:46:10 -0400 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-03-13 13:46:10 -0400 |
commit | 2d1d3bbc49ab3a15069591fac36f8fd59f424233 (patch) | |
tree | 32bbaa6e65c732ded28f3135856d3cbe379956b0 | |
parent | 0b717d42fb3ee27bf77c31c60ba5eef182e6fa84 (diff) | |
download | cryptography-2d1d3bbc49ab3a15069591fac36f8fd59f424233.tar.gz cryptography-2d1d3bbc49ab3a15069591fac36f8fd59f424233.tar.bz2 cryptography-2d1d3bbc49ab3a15069591fac36f8fd59f424233.zip |
make create_modulename private, add test
-rw-r--r-- | cryptography/hazmat/bindings/utils.py | 12 | ||||
-rw-r--r-- | tests/hazmat/bindings/test_utils.py | 28 |
2 files changed, 36 insertions, 4 deletions
diff --git a/cryptography/hazmat/bindings/utils.py b/cryptography/hazmat/bindings/utils.py index 1d07cd97..3da0412e 100644 --- a/cryptography/hazmat/bindings/utils.py +++ b/cryptography/hazmat/bindings/utils.py @@ -71,7 +71,11 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries): ) lib = ffi.verify( source=source, - modulename=create_modulename(ffi, source), + modulename=_create_modulename( + ffi, source, + sys.version, + sys.version_info + ), libraries=libraries, ext_package="cryptography", ) @@ -87,7 +91,7 @@ def build_ffi(module_prefix, modules, pre_include, post_include, libraries): return ffi, lib -def create_modulename(ffi, source): +def _create_modulename(ffi, source, sys_version, sys_version_info): """ cffi creates a modulename internally that incorporates the cffi version. This will cause cryptography's wheels to break when the version of cffi @@ -95,8 +99,8 @@ def create_modulename(ffi, source): resolve this we build our own modulename that uses most of the same code from cffi but elides the version key. """ - key = '\x00'.join([sys.version[:3], source] + ffi._cdefsources) - if sys.version_info >= (3,): + key = '\x00'.join([sys_version[:3], source] + ffi._cdefsources) + if sys_version_info >= (3,): key = key.encode('utf-8') k1 = hex(binascii.crc32(key[0::2]) & 0xffffffff) k1 = k1.lstrip('0x').rstrip('L') diff --git a/tests/hazmat/bindings/test_utils.py b/tests/hazmat/bindings/test_utils.py new file mode 100644 index 00000000..d458972e --- /dev/null +++ b/tests/hazmat/bindings/test_utils.py @@ -0,0 +1,28 @@ +# 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. + +from __future__ import absolute_import, division, print_function + +import sys + +import pretend + +from cryptography.hazmat.bindings import utils + + +def test_create_modulename(): + pretend_ffi = pretend.stub(_cdefsources=["cdef sources go here"]) + source = "source code" + name = utils._create_modulename(pretend_ffi, source, sys.version, + sys.version_info) + assert name == "_cffi_bcba7f4bx4a14b588" |