-
Notifications
You must be signed in to change notification settings - Fork 95
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failing tests for OpenRefine 2.7 to 3.2 #19
Comments
good test results with fork from @dbutlerdb and OpenRefine 2.8, 2.9 and 3.0 but:
see comment with test results in pull request #18 |
Wow this is awesome, Felix! I did notice when I was working on this with that there’s been some subtle behavior changes in how OR parses stuff. For anyone wanting to debug: Have you worked through the tutorial the tests are based on? It’s very helpful in figuring out what these tests are really doing and identifying what’s changed. Next step after the tutorial is being able to trace HTTP requests to understand the request/responses. I suspect for example a parameter has changed in project creation that’s causing the “Untitled” glitch. There’s some minimal notes in the docs about how to do this but happy to expand on it. I suspect our path forward here is as you say debugging and documenting the behavior changes and then coming to an decision on whether to attempt OR 2 compatibility or rev the client major version and say this is OR 3 only, IFF the behavior changes map cleanly to OR 3 (as opposed to quietly changing eg 2.7 to 2.8 or whatever, which would technically could be a semver issue for OR...) |
As @paulmakepeace commented in #15 our first goal should be
A first step could be a systematic test with all OpenRefine versions. So let's get started...
Test environment
I wrote a bash script to test all different versions in one run: tests.sh
Tested with refine-client-py:master snapshot 2019-08-04
OpenRefine server started with docker images from openjdk (cf. Docker Hub felixlohmeier/openrefine
extended assertions for newer versions in tests/test_refine.py, line 40
Results
-
means that OpenRefine does not support this java versionFAILs and ERRORs in detail
OpenRefine 2.7 + 2.8: FAIL (1)
same results for 2.7 with java 7 or 8 and for 2.8 with java 7, 8 or 9
If I change the assertions to these values and re-run then other FAILs pop up (one after another):
If I change all these assertions to these values then OpenRefine 2.7 and 2.8 would be OK. I have not checked yet whether the new results are plausible.
diff for tests/test_tutorial.py
OpenRefine 3.0: FAIL (1) / ERROR (4)
same results with java 8 or 9
FAIL: see OpenRefine 2.7
With updated assertions there is another Exception (like the ones below)
ERRORS: 4 (3x server error: JSONObject["l"] not a string., 1x java.lang.NullPointerException)
OpenRefine 3.1: FAIL (1) / ERROR (4)
same results with java 8 or 9
FAIL: see OpenRefine 2.7
With updated assertions there is another Exception (a new one...)
ERRORS: 4 (4x java.lang.NullPointerException)
OpenRefine 3.2: FAIL (1) / ERROR (3)
same results with java 8, 9, 10, 11 or 12
FAIL: see OpenRefine 2.7
With updated assertions there is another Exception (like the ones below)
ERRORS: 3 (different ones than above! 2x KeyError: 'mode', 1x TypeError: coercing to Unicode: need string or buffer, NoneType found)
Next steps
These different errors needs debugging and eventually deviating code (and/or tests) for different versions of OpenRefine if we want to ensure backwards compatibility. Not sure where to begin...
The text was updated successfully, but these errors were encountered: