I am trying to close these streams since we know in the test the
ComplexData.data is an InputStream
teleivo <teleivo@users.noreply.github.com>
aff6a214fe2a2ed3fe6da29799fc12eef21e94a2
TRUNK-5816 Disable failing HandlerTests on Windows
only for now. We need to replicate what developers are seeing on Windows
see discussion at https://talk.openmrs.org/t/tests-failing-in-core-on-windows/29471/16
the tests still run in our pipelines (Travis/Bamboo) which ensures that
the behaviour stays the same. This will at least unblock developers on
Windows until we find the root cause.
teleivo <teleivo@users.noreply.github.com>
d5585afd4142a3facb1d12340e0c4588f0db6565
TRUNK-5816 powermock reflect is enough for api tests
to set the OpenmrsConstants for more info refer to
bc4adc1efaa488c889d3fd2ab61f8178b7e704b4
we should prevent new contributions from adding tests written with
PowerMock
We still rely on powermock-api-mockito2 to set the
public static final String OPENMRS_VERSION
of OpenmrsConstants during testing.
There might also be a way to replace this usage and simply use
reflection. That could be investigated at a later point.
Most importantly for our migration to JUnit 5 is that we prevent JUnit 4
tests (and therefore also PowerMock tests) from entering openmrs-core.
We should in general avoid reaching for services via the static Context
methods since that makes testing in isolation hard. Springs dependency
injection allows us to wonderfully configure our services during testing
and production. This is what we need to leverage instead of static
methods that need PowerMock during testing. This also just hides the
fact that a Service has certain dependencies and is an easy way out in
designing our system.
TRUNK-5817: Migrate web and webapp package tests to Junit 5 (#3378)
Co-authored-by: achilep <you@example.com>
Trust Birungi <diamondtrust66@gmail.com>
3604c6bd0692a75dfdbe2faa1670bef4fae10e69
TRUNK-5702: Ordered patient programs by enrollment date (#3355)
teleivo <teleivo@users.noreply.github.com>
0ee2d1f6bcde882268a76062efef640b8360e088
TRUNK-5816 Close streams in test
both tests fail on Windows with an error like
[INFO] Running org.openmrs.obs.BinaryStreamHandlerTest
Jul 17, 2020 11:42:59 AM org.junit.jupiter.engine.execution.JupiterEngineExecutionContext close
SEVERE: Caught exception while closing extension context: org.junit.jupiter.engine.descriptor.MethodExtensionContext@4fa274
java.io.IOException: Failed to delete temp directory ...\AppData\Local\Temp\junit9081338062257189768. The following paths could not be deleted (see suppressed exceptions for details): , TestingComplexObsSaving_1d883c5b-ae87-4e42-b5aa-2171b58c51da.dat, TestingComplexObsSaving_27cc4781-b820-466d-834c-70b4d221d24f.dat
...
Suppressed: java.nio.file.FileSystemException: ...\AppData\Local\Temp\junit9081338062257189768\TestingComplexObsSaving_1d883c5b-ae87-4e42-b5aa-2171b58c51da.dat: The process cannot access the file because it is being used by another process.
Looking at https://github.com/spring-io/initializr/issues/862 it could
well be that we are facing the same problem that we are not properly
closing our streams before exiting the test. Thus wrapping them in a
try-with resource block.
This theory makes sense since the saveObs uses OpenmrsUtil.copyFile
which does not close the inputstream but only the outputstream.