rgw: add nose dependency for rgw_multisite_tests task#1069
rgw: add nose dependency for rgw_multisite_tests task#1069vasukulkarni merged 1 commit intomasterfrom
Conversation
|
LGTM |
setup.py
Outdated
| 'configobj', | ||
| 'six >= 1.9', # python-openstackclient won't work properly with less | ||
| 'httplib2', | ||
| 'nose', |
There was a problem hiding this comment.
I don't love the idea of adding a dependency for just one task, but I don't have a better solution yet. In the meantime could you add a comment explaining what this new dep is for? I don't want the reason to get buried in commit history.
60f797a to
65b4f37
Compare
|
thanks @zmc, added a comment. i agree that it's not ideal, but the only alternative i could think of was rewriting all of the existing tests for |
|
Actually, py.test has support for nosetests :) So this shouldn't even be necessary? Also, please keep in mind that even though nosetests is used in the suites, it is no longer maintained, and that has been the case for a while. |
|
hi @alfredodeza, i'm not familiar with py.test, but that sounds promising. are there any examples you could point me at? |
|
there are quite a few known issues running nosetests using py.test, https://docs.pytest.org/en/latest/nose.html, Better to run them with nose than with py.test |
|
@cbodley I think that if you just try Certainly, like @vasukulkarni points out, there is no 100% support for everything nose has (e.g. classes that don't inherit from |
i'm using the nose api to run the tests within the rgw_multisite_tests task, so i'd have to do something similar with pytest (it looks like there's a
that's a problem, then. the tests in |
maybe not. running those tests on the command line with |
|
@alfredodeza i'm having trouble getting i tried using |
|
i don't see pytest listed as a dependency either - is that coming from somewhere else? testing my updated suite on ovh, i got |
|
@cbodley Ah, we don't list pytest as a dependency since it's only been used for unit tests so far. If you have things working with pytest, we can definitely add it as a dependency. |
65b4f37 to
7240331
Compare
|
updated pr, now adds |
Signed-off-by: Casey Bodley <cbodley@redhat.com>
7240331 to
8782b23
Compare
|
i changed the dependency back to nose. i was able to get it 'working' with pytest, but i couldn't get pytest to print its results to the teuthology log. the nose api gives more control over logging, so i decided to stick with that |
|
py.test "captures" stderr and stdout, and spits them out if there are any failures. If you wish to disable that capturing (done so that test runner output is clean) then there is a flag for that: |
|
@alfredodeza i tried passing each of |
|
with help from @alfredodeza, i did make some progressing in getting pytest output into teuthology.log but in further testing, i realized that the tests themselves depend on can we merge this as is? |
|
ping @zmc |
1 similar comment
|
ping @zmc |
|
@zmc is on pto this week, If you have run the tests with this change and post the results I can merge. |
|
thanks @vasukulkarni, here's the last successful run of the rgw:multisite suite that uses nose: http://pulpito.ceph.com/cbodley-2017-05-16_10:46:23-rgw:multisite-master---basic-smithi/ the jobs fail with valgrind issues, but the tests themselves pass:
|
We forgot to run pip-compile in PR #1069 Signed-off-by: Zack Cerza <zack@redhat.com>
We forgot to run pip-compile in PR #1069 Signed-off-by: Zack Cerza <zack@redhat.com>
after upgrading teuthology to centos 9 and python 3.10, the rgw multisite test suite now fails to invoke nosetests with: > AttributeError: module 'collections' has no attribute 'Callable' this is a known issue tracked in nose-devs/nose#1127 Shilpa found a new 'pynose' package which claims that: > This version of nose is compatible with Python 3.7+ (including 3.13+). replace the nose dependency that i initially added in ceph#1069 with the current version 1.5.1 of pynose to prepare this pr, i first changed setup.cfg then ran: > ./update-requirements.sh -P "pynose==1.5.1" Signed-off-by: Casey Bodley <cbodley@redhat.com>
after upgrading teuthology to centos 9 and python 3.10, the rgw multisite test suite now fails to invoke nosetests with: > AttributeError: module 'collections' has no attribute 'Callable' this is a known issue tracked in nose-devs/nose#1127 Shilpa found a new 'pynose' package which claims that: > This version of nose is compatible with Python 3.7+ (including 3.13+). replace the nose dependency that i initially added in ceph#1069 with the current version 1.5.1 of pynose to prepare this pr, i first changed setup.cfg then ran: > ./update-requirements.sh -P "pynose==1.5.1" Fixes: https://tracker.ceph.com/issues/66183 Signed-off-by: Casey Bodley <cbodley@redhat.com>
nose is a dependency for ceph/ceph#14688, which builds a qa suite around the existing rgw multisite tests in
src/test/rgw/test_multi.py. those tests need to be invoked by the teuthology task itself, because they runradosgw-admincommands on different nodes, start/stop daemons, etc