Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] testing: add python-cryptography tests
@ 2017-09-07 13:25 yegorslists at googlemail.com
  2017-09-07 13:27 ` Yegor Yefremov
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: yegorslists at googlemail.com @ 2017-09-07 13:25 UTC (permalink / raw)
  To: buildroot

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v2] testing: add python-cryptography tests
  2017-09-07 13:25 [Buildroot] [PATCH v2] testing: add python-cryptography tests yegorslists at googlemail.com
@ 2017-09-07 13:27 ` Yegor Yefremov
  2017-09-13  3:18 ` Ricardo Martincoski
  2018-02-06 14:41 ` Thomas Petazzoni
  2 siblings, 0 replies; 4+ messages in thread
From: Yegor Yefremov @ 2017-09-07 13:27 UTC (permalink / raw)
  To: buildroot

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v2] testing: add python-cryptography tests
  2017-09-07 13:25 [Buildroot] [PATCH v2] testing: add python-cryptography tests yegorslists at googlemail.com
  2017-09-07 13:27 ` Yegor Yefremov
@ 2017-09-13  3:18 ` Ricardo Martincoski
  2018-02-06 14:41 ` Thomas Petazzoni
  2 siblings, 0 replies; 4+ messages in thread
From: Ricardo Martincoski @ 2017-09-13  3:18 UTC (permalink / raw)
  To: buildroot

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v2] testing: add python-cryptography tests
  2017-09-07 13:25 [Buildroot] [PATCH v2] testing: add python-cryptography tests yegorslists at googlemail.com
  2017-09-07 13:27 ` Yegor Yefremov
  2017-09-13  3:18 ` Ricardo Martincoski
@ 2018-02-06 14:41 ` Thomas Petazzoni
  2 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-02-06 14:41 UTC (permalink / raw)
  To: buildroot

Hello,

On Thu,  7 Sep 2017 15:25:42 +0200, yegorslists at 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
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-02-06 14:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-07 13:25 [Buildroot] [PATCH v2] testing: add python-cryptography tests yegorslists at googlemail.com
2017-09-07 13:27 ` Yegor Yefremov
2017-09-13  3:18 ` Ricardo Martincoski
2018-02-06 14:41 ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox