support/run-test: move pacakges' tests to packages' directories
cover support/run-test: move pacakges' tests to packages' directories
Hello All!
It looks more logical to have packages' tests right next to the packages own descriptions, side by side with the Config.in and the .mk files.
If this solution is accepted, then it will also allow to easily add tests directly in the filesystems and boot directories.
Regards,
Yann E. MORIN.
The following changes since commit c665c7c9cd6646b135cdd9aa7036809f7771ab80
netsnmp: install all MIB files (2017-09-13 23:23:40 +0200)
are available in the git repository at:
git://git.buildroot.org/~ymorin/git/buildroot.git
for you to fetch changes up to 5d8ea4ebb51023d3943fb4e5a1678f8cfba70527
testing: add python-cryptography tests (2017-09-16 22:20:52 +0200)
----------------------------------------------------------------
Yann E. MORIN (1):
support/run-tests: move packages tests to packages directories
Yegor Yefremov (1):
testing: add python-cryptography tests
.gitignore | 1 + .gitlab-ci.yml | 2 ++ .../dropbear/dropbear.py | 0 package/python-cryptography/python-cryptography.py | 31 ++++++++++++++++++++++ .../python-ipython/python-ipython.py | 0 .../test_python.py => package/python/python.py | 0 support/testing/run-tests | 22 +++++++++++++++ support/testing/tests/package/__init__.py | 0 8 files changed, 56 insertions(+) rename support/testing/tests/package/test_dropbear.py => package/dropbear/dropbear.py (100%) create mode 100644 package/python-cryptography/python-cryptography.py rename support/testing/tests/package/test_ipython.py => package/python-ipython/python-ipython.py (100%) rename support/testing/tests/package/test_python.py => package/python/python.py (100%) delete mode 100644 support/testing/tests/package/__init__.py
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 support/run-tests: move packages tests to packages directories
Move the existing few packages' tests to the correspnding package directories.
If we were to add the package/ directory to nose2's search path, we would have to add __init__.py files about everywhere, at each level of the directory hierarchy, because nose2 only includes tests that are in a python pacakge (a directory with a __init__.py file is a python package). This is far from ideal, especially since we have absolutely nothing to put in those __init__.py files.
An alternative is to just scan the package/ directory ourselves, and create symlinks in a sub-directory of support/tessting/tests/ so that nose2 does find them. We have no two packages with the same name, we don't risk having two symlinks with the same name.
That second solution is what we choose to do, at the cost of a slight increase in complexity in the run-test script.
--- .gitignore | 1 + .../dropbear/dropbear.py | 0 .../python-ipython/python-ipython.py | 0 .../test_python.py => package/python/python.py | 0 support/testing/run-tests | 22 ++++++++++++++++++++++ support/testing/tests/package/__init__.py | 0 6 files changed, 23 insertions(+) rename support/testing/tests/package/test_dropbear.py => package/dropbear/dropbear.py (100%) rename support/testing/tests/package/test_ipython.py => package/python-ipython/python-ipython.py (100%) rename support/testing/tests/package/test_python.py => package/python/python.py (100%) delete mode 100644 support/testing/tests/package/__init__.py
.gitignore +1 -0
@@ -9,6 +9,7 @@ *.o /*.patch /*.diff +/support/testing/tests/package/ *.orig *.rej *~
package/dropbear/dropbear.py renamed from support/testing/tests/package/test_dropbear.py +0 -0
package/python-ipython/python-ipython.py renamed from support/testing/tests/package/test_ipython.py +0 -0
package/python/python.py renamed from support/testing/tests/package/test_python.py +0 -0
support/testing/run-tests +22 -0
@@ -2,6 +2,9 @@ import argparse import sys import os +import errno +import shutil +import re import nose2 import multiprocessing
@@ -36,6 +39,9 @@ def main(): script_path = os.path.realpath(__file__) test_dir = os.path.dirname(script_path) + gatheradditionaltests(os.path.abspath("."), + os.path.join(test_dir,"tests","package")) + if args.stdout: BRTest.logtofile = False
@@ -116,5 +122,21 @@ def main(): nose2.discover(argv=nose2_args) +def gatheradditionaltests(search_dir, symlink_dir): + try: + shutil.rmtree(symlink_dir) + except OSError as err: + if not err.errno == errno.ENOENT: + raise err + pass + os.mkdir(symlink_dir) + open(os.path.join(symlink_dir,"__init__.py"), "w").close() + for dir, _, files in os.walk(os.path.abspath(search_dir)): + package = os.path.basename(dir) + for file in files: + if re.match("^{}.py$".format(package),file): + os.symlink(os.path.join(dir,file), + os.path.join(symlink_dir,"test_{}.py".format(package))) + if __name__ == "__main__": sys.exit(main())
support/testing/tests/package/__init__.py deleted +0 -0
Signature · 1 line
2.11.0
PATCH 1/2 support/run-tests: move packages tests to packages directories
Hello,
Quoted 1 line · Yann E. MORIN
Move the existing few packages' tests to the correspnding package
typo: corresponding
Quoted 6 lines
directories.
If we were to add the package/ directory to nose2's search path, we would have to add
__init__.pyfiles about everywhere, at each level of the directory hierarchy, because nose2 only includes tests that are in a python pacakge (a directory with a__init__.pyfile is a python package).
typo: package
Quoted 5 lines
This is far from ideal, especially since we have absolutely nothing to put in those
__init__.pyfiles.An alternative is to just scan the package/ directory ourselves, and create symlinks in a sub-directory of support/tessting/tests/ so that
typo: testing
Quoted 11 lines
nose2 does find them. We have no two packages with the same name, we don't risk having two symlinks with the same name.
That second solution is what we choose to do, at the cost of a slight increase in complexity in the run-test script.
Signed-off-by "Yann E. MORIN" <[email protected]>Cc Ricardo Martincoski <[email protected]>Cc Thomas Petazzoni <[email protected]>Cc Arnout Vandecappelle <[email protected]>Cc Samuel Martin <[email protected]>
Quoted 10 lines
--- .gitignore | 1 + .../dropbear/dropbear.py | 0 .../python-ipython/python-ipython.py | 0 .../test_python.py => package/python/python.py | 0 support/testing/run-tests | 22 ++++++++++++++++++++++ support/testing/tests/package/__init__.py | 0 6 files changed, 23 insertions(+) rename support/testing/tests/package/test_dropbear.py => package/dropbear/dropbear.py (100%) rename support/testing/tests/package/test_ipython.py => package/python-ipython/python-ipython.py (100%)
.gitlab-ci.yml needs to be generated again because of this rename.
As I mentioned in another thread, having Python files with '-' in their name AFAIK is not a problem as long we don't want to import them.
We currently import only test_python.py and it seems unlikely to have runtime tests importing each other.
And this series is really changing the filename convention for runtime tests of packages, making the pre-existing convention of package files beat the convention inside the test infra. I am OK with this change, but I think it worth mentioning. Perhaps it fits in the commit log?
[snip]
support/testing/run-tests def main(): · line 42
Quoted 5 lines
support/testing/run-tests +1
-0@@ -36,6 +39,9 @@ def main(): script_path = os.path.realpath(__file__) test_dir = os.path.dirname(script_path) + gatheradditionaltests(os.path.abspath("."),
Below you run all files in this path (base dir of buildroot) to match against the regex. It's bad because one can have output/, test-output/, test-dl/, outgoing/, ...
Also os.getcwd() should give the same result and it is already used in support/testing/infra/__init__.py
So for now I suggest to change to:
gather_additional_tests(os.path.join(os.getcwd(), "package"), And if fs tests gets moved, just add another call to the same method. We don't have that many subdirectories in the root directory.
Other way around is to pass an array of relative subdirectories gather_additional_tests(["package", "fs"],
and compose the absolute path inside the method while iterating over the entries.
support/testing/run-tests def main(): · line 43
Quoted 1 line
support/testing/run-tests +1
-0+ os.path.join(test_dir,"tests","package"))
Here and all over the file there are missing whitespace after ',' Can you use flake8 to find them and fix it?
If you use vim you can do
:set makeprg=flake8\ %
:make
and it will jump the cursor to the right place
support/testing/run-tests def main(): · line 125
Quoted 9 lines
support/testing/run-tests +2
-0+ if args.stdout: BRTest.logtofile = False@@ -116,5 +122,21 @@ def main(): nose2.discover(argv=nose2_args) +def gatheradditionaltests(search_dir, symlink_dir):
You could call it gather_additional_tests.
support/testing/run-tests def main(): · line 131
Quoted 6 lines
support/testing/run-tests +6
-0+ try: + shutil.rmtree(symlink_dir) + except OSError as err: + if not err.errno == errno.ENOENT: + raise err + pass
Could we do just this? (like is done in builder.py)
if os.path.exists(symlink_dir):
shutil.rmtree(symlink_dir)
If you change this, errno doesn't need to be imported.
support/testing/run-tests def main(): · line 134
Quoted 3 lines
support/testing/run-tests +3
-0+ os.mkdir(symlink_dir) + open(os.path.join(symlink_dir,"__init__.py"), "w").close() + for dir, _, files in os.walk(os.path.abspath(search_dir)):
I first thought, why not glob.glob? But in Python 2 it is not recursive. So indeed os.walk is the way to go.
support/testing/run-tests def main(): · line 136
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:
You can import fnmatch to drastically reduce the number of regex compilations:
for file in fnmatch.filter(files, '*.py'):
support/testing/run-tests def main(): · line 139
Quoted 3 lines
support/testing/run-tests +3
-0+ if re.match("^{}.py$".format(package),file): + os.symlink(os.path.join(dir,file), + os.path.join(symlink_dir,"test_{}.py".format(package)))
Regards,
Ricardo
PATCH 1/2 support/run-tests: move packages tests to packages directories
Ricardo, All,
On 2017-09-17 02:20 -0300, Ricardo Martincoski spake thusly:
Quoted 11 lines · Yann E. MORIN
Quoted 10 lines
--- .gitignore | 1 + .../dropbear/dropbear.py | 0 .../python-ipython/python-ipython.py | 0 .../test_python.py => package/python/python.py | 0 support/testing/run-tests | 22 ++++++++++++++++++++++ support/testing/tests/package/__init__.py | 0 6 files changed, 23 insertions(+) rename support/testing/tests/package/test_dropbear.py => package/dropbear/dropbear.py (100%) rename support/testing/tests/package/test_ipython.py => package/python-ipython/python-ipython.py (100%)
Quoted 4 lines
As I mentioned in another thread, having Python files with '-' in their name AFAIK is not a problem as long we don't want to import them.
We currently import onlytest_python.pyand it seems unlikely to have runtime tests importing each other.
Yet we don't know what the future will be made of, so we should squash the dasj into an underscore, so as to allow this kind of situation.
Quoted 4 lines
And this series is really changing the filename convention for runtime tests of packages, making the pre-existing convention of package files beat the convention inside the test infra. I am OK with this change, but I think it worth mentioning. Perhaps it fits in the commit log?
Yes, it does change the naming convention. I was about to add it to our manual, in the section about adding new packages, to document the .py file in addition to Config.in and the .mk and .hash files. But then I noticed we had nothing about the runtime tests in the manual, so I could not refer to that section to explain the .py file.
So I deferred updating the manual for later.
Quoted 10 lines
[snip]
support/testing/run-tests def main(): · line 42
Quoted 5 lines
support/testing/run-tests +1
-0@@ -36,6 +39,9 @@ def main(): script_path = os.path.realpath(__file__) test_dir = os.path.dirname(script_path) + gatheradditionaltests(os.path.abspath("."),Below you run all files in this path (base dir of buildroot) to match against the regex. It's bad because one can have output/, test-output/, test-dl/, outgoing/, ...
Arg, I initially wanted to only scan package/ in fact.
Quoted 5 lines
Also
os.getcwd()should give the same result and it is already used insupport/testing/infra/__init__.pySo for now I suggest to change to:
gather_additional_tests(os.path.join(os.getcwd(), "package"),
Except that both your solution and mine break when the script is not called from the Buildroot top directory. We must derive the top directory from the script path.
Quoted 7 lines
And if fs tests gets moved, just add another call to the same method. We don't have that many subdirectories in the root directory.
Other way around is to pass an array of relative subdirectories gather_additional_tests(["package", "fs"],
and compose the absolute path inside the method while iterating over the entries.
I think the origin directory should be passed as argument to the function, for the above reason.
And yes, we could pass a list of directories.
Quoted 4 lines
support/testing/run-tests def main(): · line 43
Quoted 1 line
support/testing/run-tests +1
-0+ os.path.join(test_dir,"tests","package"))Here and all over the file there are missing whitespace after ',' Can you use flake8 to find them and fix it?
Yup, will do.
Quoted 9 lines
If you use vim you can do
:set makeprg=flake8\ %
:make
and it will jump the cursor to the right placeQuoted 4 lines
support/testing/run-tests +1
-0+ if args.stdout: BRTest.logtofile = False
Quoted 7 lines
support/testing/run-tests def main(): · line 125
Quoted 5 lines
support/testing/run-tests +1
-0@@ -116,5 +122,21 @@ def main(): nose2.discover(argv=nose2_args) +def gatheradditionaltests(search_dir, symlink_dir):You could call it
gather_additional_tests.
I never know whatThe_prefered_Solutionis. ;-)
Quoted 11 lines
support/testing/run-tests def main(): · line 131
Quoted 6 lines
support/testing/run-tests +6
-0+ try: + shutil.rmtree(symlink_dir) + except OSError as err: + if not err.errno == errno.ENOENT: + raise err + passCould we do just this? (like is done in
builder.py)
ifos.path.exists(symlink_dir):
shutil.rmtree(symlink_dir)
If you change this, errno doesn't need to be imported.
So I am no Python expert, and this shows. Thanks for the hints! :-)
Quoted 4 lines
support/testing/run-tests def main(): · line 134
Quoted 3 lines
support/testing/run-tests +3
-0+ os.mkdir(symlink_dir) + open(os.path.join(symlink_dir,"__init__.py"), "w").close() + for dir, _, files in os.walk(os.path.abspath(search_dir)):
Quoted 8 lines
I first thought, why not glob.glob? But in Python 2 it is not recursive. So indeed os.walk is the way to go.
support/testing/run-tests def main(): · line 136
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:You can import fnmatch to drastically reduce the number of regex compilations:
for file infnmatch.filter(files, '*.py'):
Wee! :-)
Quoted 6 lines
support/testing/run-tests def main(): · line 139
Quoted 3 lines
support/testing/run-tests +3
-0+ if re.match("^{}.py$".format(package),file): + os.symlink(os.path.join(dir,file), + os.path.join(symlink_dir,"test_{}.py".format(package)))Regards,
Ricardo
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 support/run-tests: move packages tests to packages directories
Ricardo, All,
On 2017-09-17 09:18 +0200, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2017-09-17 02:20 -0300, Ricardo Martincoski spake thusly:
Quoted 1 line · Yann E. MORIN
[--SNIP--]
Quoted 6 lines
Quoted 5 lines
support/testing/run-tests def main(): · line 136
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:You can import fnmatch to drastically reduce the number of regex compilations:
for file infnmatch.filter(files, '*.py'):Wee! :-)
In fact, no. At least, not in this state, because we do not want to match _any_ .py file; instead, we want to match only .py files that are named after the package.
But I guess I can make it to work with fnmatch nonetheless. ;-)
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 support/run-tests: move packages tests to packages directories
Hello,
Quoted 7 lines · Yann E. MORIN
On 2017-09-17 09:18 +0200, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2017-09-17 02:20 -0300, Ricardo Martincoski spake thusly:
Quoted 1 line · Yann E. MORIN
[--SNIP--]
Quoted 3 lines
Quoted 3 lines
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:
Quoted 7 lines
Quoted 3 lines
Quoted 2 lines
You can import fnmatch to drastically reduce the number of regex compilations:
for file infnmatch.filter(files, '*.py'):Wee! :-)
In fact, no. At least, not in this state, because we do not want to match _any_ .py file; instead, we want to match only .py files that are named after the package.
We could use 2 filters. Instead of 8k+ regex compilations (one for each file inside a package directory) we would run 2k+ fnmatch.filter (that probably compile one regex, one per directory) and one regex compilation for each test file in the package tree.
for file in fnmatch.filter(files, '*.py'):
if re.match("^{}.py$".format(package),file):
But well... the default python interpreter has a cache for regex (I don't know its internals, just that it exists) and perhaps the change I suggested won't make any difference in performance.
Quoted 2 lines
But I guess I can make it to work with fnmatch nonetheless. ;-)
BTW, could you change the DEVELOPERS file in the same patch?
+F: package/*/*.py
F: support/testing/
I know it won't work for all possible files. 99% is enough for me.
Regards,
Ricardo
PATCH 1/2 support/run-tests: move packages tests to packages directories
Ricardo, All,
On 2017-10-01 21:54 -0300, Ricardo Martincoski spake thusly:
Quoted 16 lines · Yann E. MORIN
Quoted 7 lines
On 2017-09-17 09:18 +0200, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2017-09-17 02:20 -0300, Ricardo Martincoski spake thusly:
Quoted 1 line · Yann E. MORIN
[--SNIP--]
Quoted 3 lines
Quoted 3 lines
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:Quoted 7 lines
Quoted 3 lines
Quoted 2 lines
You can import fnmatch to drastically reduce the number of regex compilations:
for file infnmatch.filter(files, '*.py'):Wee! :-)
In fact, no. At least, not in this state, because we do not want to match _any_ .py file; instead, we want to match only .py files that are named after the package.
Quoted 7 lines
We could use 2 filters. Instead of 8k+ regex compilations (one for each file inside a package directory) we would run 2k+ fnmatch.filter (that probably compile one regex, one per directory) and one regex compilation for each test file in the package tree.
for file in
fnmatch.filter(files, '*.py'):
if re.match("^{}.py$".format(package),file):
Err... I already changed it to:
for file in fnmatch.filter(files, '{}.py'.format(package)):
Is there something wrong with that? ;-)
Quoted 10 lines
But well... the default python interpreter has a cache for regex (I don't know its internals, just that it exists) and perhaps the change I suggested won't make any difference in performance.
Quoted 2 lines
But I guess I can make it to work with fnmatch nonetheless. ;-)
BTW, could you change the DEVELOPERS file in the same patch?
+F: package/*/*.py
F: support/testing/
You meant, add it to your entry ?
In fact, I would expect to assign the test files to the corresponding package custodian (now imp[licit by their location).
But yes, I can assign them to you as well.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 support/run-tests: move packages tests to packages directories
Hello,
Quoted 22 lines · Yann E. MORIN
On 2017-10-01 21:54 -0300, Ricardo Martincoski spake thusly:
Quoted 21 lines · Yann E. MORIN
Quoted 7 lines
On 2017-09-17 09:18 +0200, Yann E. MORIN spake thusly:
Quoted 2 lines
On 2017-09-17 02:20 -0300, Ricardo Martincoski spake thusly:
Quoted 1 line · Yann E. MORIN
[--SNIP--]
Quoted 3 lines
Quoted 3 lines
Quoted 2 lines
support/testing/run-tests +2
-0+ package = os.path.basename(dir) + for file in files:Quoted 7 lines
Quoted 3 lines
Quoted 2 lines
You can import fnmatch to drastically reduce the number of regex compilations:
for file infnmatch.filter(files, '*.py'):Wee! :-)
In fact, no. At least, not in this state, because we do not want to match _any_ .py file; instead, we want to match only .py files that are named after the package.
We could use 2 filters. Instead of 8k+ regex compilations (one for each file inside a package directory) we would run 2k+ fnmatch.filter (that probably compile one regex, one per directory) and one regex compilation for each test file in the package tree.
Quoted 8 lines
Quoted 2 lines
for file in
fnmatch.filter(files, '*.py'):
if re.match("^{}.py$".format(package),file):Err... I already changed it to:
for file in
fnmatch.filter(files, '{}.py'.format(package)):Is there something wrong with that? ;-)
Nothing wrong. It's better this (your) way IMO.
Quoted 6 lines
Quoted 6 lines
But well... the default python interpreter has a cache for regex (I don't know its internals, just that it exists) and perhaps the change I suggested won't make any difference in performance.
Quoted 1 line
Quoted 7 lines
Quoted 5 lines
Quoted 1 line
But I guess I can make it to work with fnmatch nonetheless. ;-)
BTW, could you change the DEVELOPERS file in the same patch?
+F: package/*/*.py
F: support/testing/You meant, add it to your entry ?
Yes.
Quoted 5 lines
In fact, I would expect to assign the test files to the corresponding package custodian (now imp[licit by their location).
But yes, I can assign them to you as well.
Thanks.
Regards,
Ricardo
PATCH 2/2 testing: add python-cryptography tests
In reply to Yann E. MORINFrom: Yegor Yefremov <[email protected]>
[yann.morin.1998 at free.fr:
- move to package directory,
- indent the config fragment
]
---
Note:
This is exactly the same as https://patchwork.ozlabs.org/patch/811011/
but with the test moved to the python-cryptography package and the config fragment indented.
--- .gitlab-ci.yml | 2 ++ package/python-cryptography/python-cryptography.py | 31 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 package/python-cryptography/python-cryptography.py
.gitlab-ci.yml +2 -0
@@ -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
package/python-cryptography/python-cryptography.py new file +31 -0
@@ -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)
Signature · 1 line
2.11.0
PATCH 2/2 testing: add python-cryptography tests
Hello,
Quoted 1 line · Yann E. MORIN
testing: add python-cryptography tests
This patch could now be renamed to:
python-cryptography: add runtime tests
or something like this
Quoted 6 lines
From: Yegor Yefremov <[email protected]>
Signed-off-by Yegor Yefremov <[email protected]>Reviewed-by Ricardo Martincoski <[email protected]>[yann.morin.1998 at free.fr:
- move to package directory,
- rename the test file to follow the package convention,
I am OK with this change, but I think it worth mentioning.
Quoted 9 lines
- indent the config fragment
]Signed-off-by Yann E. MORIN <[email protected]>---
Note:
This is exactly the same as https://patchwork.ozlabs.org/patch/811011/
but with the test moved to the python-cryptography package and the config fragment indented.
Quoted 5 lines
--- .gitlab-ci.yml | 2 ++ package/python-cryptography/python-cryptography.py | 31 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 package/python-cryptography/python-cryptography.py
.gitlab-ci.yml needs to be generated again because of this rename (to use '-' in the name again).
Quoted 6 lines
.gitlab-ci.yml +0
-0
.gitlab-ci.yml tests.package.test_ipython.TestIPythonPy2: *runtime_test · line 257
Quoted 8 lines
.gitlab-ci.yml +2
-0@@ -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
[snip]
Regards,
Ricardo
PATCH 2/2 testing: add python-cryptography tests
Ricardo, All,
On 2017-09-17 02:26 -0300, Ricardo Martincoski spake thusly:
Quoted 7 lines · Yann E. MORIN
Quoted 2 lines
testing: add python-cryptography tests
This patch could now be renamed to:
python-cryptography: add runtime tests
or something like this
Yep, good point.
Quoted 10 lines
Quoted 6 lines
From: Yegor Yefremov <[email protected]>
Signed-off-by Yegor Yefremov <[email protected]>Reviewed-by Ricardo Martincoski <[email protected]>[yann.morin.1998 at free.fr:
- move to package directory,- rename the test file to follow the package convention,
I am OK with this change, but I think it worth mentioning.
Ack.
Regards,
Yann E. MORIN.
Quoted 36 lines
Quoted 9 lines
- indent the config fragment
]Signed-off-by Yann E. MORIN <[email protected]>---
Note:
This is exactly the same as https://patchwork.ozlabs.org/patch/811011/
but with the test moved to the python-cryptography package and the config fragment indented.Quoted 5 lines
--- .gitlab-ci.yml | 2 ++ package/python-cryptography/python-cryptography.py | 31 ++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 package/python-cryptography/python-cryptography.py.gitlab-ci.yml needs to be generated again because of this rename (to use '-' in the name again).
Quoted 6 lines
.gitlab-ci.yml +0
-0.gitlab-ci.yml tests.package.test_ipython.TestIPythonPy2: *runtime_test · line 257
Quoted 8 lines
.gitlab-ci.yml +2
-0@@ -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[snip]
Regards,
Ricardo
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'