Message ID | 1504790742-27831-1-git-send-email-yegorslists@googlemail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v2] testing: add python-cryptography tests | expand |
On Thu, Sep 7, 2017 at 3:25 PM, <yegorslists@googlemail.com> wrote: > From: Yegor Yefremov <yegorslists@googlemail.com> > > Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> > --- > Changes v1 -> v2: > - rename test file to have only '_' delimiters (suggested by Ricardo Martincoski) > - use intermediate class to avoid duplicate code (suggested by Ricardo Martincoski) > > .gitlab-ci.yml | 2 ++ > .../tests/package/test_python_cryptography.py | 31 ++++++++++++++++++++++ > 2 files changed, 33 insertions(+) > create mode 100644 support/testing/tests/package/test_python_cryptography.py > > diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml > index b44c935..091b016 100644 > --- a/.gitlab-ci.yml > +++ b/.gitlab-ci.yml > @@ -250,6 +250,8 @@ tests.package.test_ipython.TestIPythonPy2: *runtime_test > tests.package.test_ipython.TestIPythonPy3: *runtime_test > tests.package.test_python.TestPython2: *runtime_test > tests.package.test_python.TestPython3: *runtime_test > +tests.package.test_python_cryptography.TestPythonPy2Cryptography: *runtime_test > +tests.package.test_python_cryptography.TestPythonPy3Cryptography: *runtime_test > tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: *runtime_test > tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: *runtime_test > tests.toolchain.test_external.TestExternalToolchainCCache: *runtime_test > diff --git a/support/testing/tests/package/test_python_cryptography.py b/support/testing/tests/package/test_python_cryptography.py > new file mode 100644 > index 0000000..b60152d > --- /dev/null > +++ b/support/testing/tests/package/test_python_cryptography.py > @@ -0,0 +1,31 @@ > +import os > + > +from tests.package.test_python import TestPythonBase > + > +class TestPythonCryptography(TestPythonBase): > + def fernet_test(self, timeout=-1): > + cmd = self.interpreter + " -c 'from cryptography.fernet import Fernet;" > + cmd += "key = Fernet.generate_key();" > + cmd += "f = Fernet(key)'" > + _, exit_code = self.emulator.run(cmd, timeout) > + self.assertEqual(exit_code, 0) > + > +class TestPythonPy2Cryptography(TestPythonCryptography): > + config = TestPythonBase.config + \ > +""" > +BR2_PACKAGE_PYTHON=y > +BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y > +""" > + def test_run(self): > + self.login() > + self.fernet_test(40) > + > +class TestPythonPy3Cryptography(TestPythonCryptography): > + config = TestPythonBase.config + \ > +""" > +BR2_PACKAGE_PYTHON3=y > +BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y > +""" > + def test_run(self): > + self.login() > + self.fernet_test(40) > -- > 2.1.4 Following patch [1] is required for error less execution in Python 2 environment. [1] http://patchwork.ozlabs.org/patch/810953/ Yegor
Hello, On Thu, Sep 07, 2017 at 10:25 AM, Yegor wrote: > From: Yegor Yefremov <yegorslists@googlemail.com> > > Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> [code style follows test_python.py, let me fix both (and more) in a follow up series if this one gets applied now] Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Thomas, It's up to you to apply this now or to wait for a generic solution for all python packages. I suppose the later will take a while. Anyway, these test cases seem to be a good base to compare against the auto-generated test cases for python packages. [snip] > + def fernet_test(self, timeout=-1): > + cmd = self.interpreter + " -c 'from cryptography.fernet import Fernet;" > + cmd += "key = Fernet.generate_key();" > + cmd += "f = Fernet(key)'" > + _, exit_code = self.emulator.run(cmd, timeout) > + self.assertEqual(exit_code, 0) This test could be expanded to catch also the missing hashlib dependency: out, exit_code = self.emulator.run(cmd, timeout) self.assertEqual(exit_code, 0) output = "\n".join(out) + "\n" self.assertNotRegexpMatches(output, "ERROR") but it can be done later, maybe it is only a corner case (to fail based on output instead of only on exit code). It would fail like this (without "bbcc673b3a python-cryptography: add missing dependency on BR2_PACKAGE_PYTHON_HASHLIB"): https://gitlab.com/RicardoMartincoski/buildroot/-/jobs/32317984 Regards, Ricardo
Hello, On Thu, 7 Sep 2017 15:25:42 +0200, yegorslists@googlemail.com wrote: > From: Yegor Yefremov <yegorslists@googlemail.com> > > Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com> > --- > Changes v1 -> v2: > - rename test file to have only '_' delimiters (suggested by Ricardo Martincoski) > - use intermediate class to avoid duplicate code (suggested by Ricardo Martincoski) Applied to next, thanks. Thomas
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b44c935..091b016 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -250,6 +250,8 @@ tests.package.test_ipython.TestIPythonPy2: *runtime_test tests.package.test_ipython.TestIPythonPy3: *runtime_test tests.package.test_python.TestPython2: *runtime_test tests.package.test_python.TestPython3: *runtime_test +tests.package.test_python_cryptography.TestPythonPy2Cryptography: *runtime_test +tests.package.test_python_cryptography.TestPythonPy3Cryptography: *runtime_test tests.toolchain.test_external.TestExternalToolchainBuildrootMusl: *runtime_test tests.toolchain.test_external.TestExternalToolchainBuildrootuClibc: *runtime_test tests.toolchain.test_external.TestExternalToolchainCCache: *runtime_test diff --git a/support/testing/tests/package/test_python_cryptography.py b/support/testing/tests/package/test_python_cryptography.py new file mode 100644 index 0000000..b60152d --- /dev/null +++ b/support/testing/tests/package/test_python_cryptography.py @@ -0,0 +1,31 @@ +import os + +from tests.package.test_python import TestPythonBase + +class TestPythonCryptography(TestPythonBase): + def fernet_test(self, timeout=-1): + cmd = self.interpreter + " -c 'from cryptography.fernet import Fernet;" + cmd += "key = Fernet.generate_key();" + cmd += "f = Fernet(key)'" + _, exit_code = self.emulator.run(cmd, timeout) + self.assertEqual(exit_code, 0) + +class TestPythonPy2Cryptography(TestPythonCryptography): + config = TestPythonBase.config + \ +""" +BR2_PACKAGE_PYTHON=y +BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y +""" + def test_run(self): + self.login() + self.fernet_test(40) + +class TestPythonPy3Cryptography(TestPythonCryptography): + config = TestPythonBase.config + \ +""" +BR2_PACKAGE_PYTHON3=y +BR2_PACKAGE_PYTHON_CRYPTOGRAPHY=y +""" + def test_run(self): + self.login() + self.fernet_test(40)