There seems to be a weird race-condition in the tests.
From time to time the CI/CD test fail with TestUploads.test_post_metadata_and_republish
failed due to:
ERROR nomad.app 2020-03-06T13:36:29 internal server error
2128 - exception: Traceback (most recent call last):
2129 File "/usr/local/lib/python3.6/site-packages/flask_restplus/api.py", line 581, in error_router
2130 return self.handle_error(e)
2131 File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
2132 rv = self.dispatch_request()
2133 File "/usr/local/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
2134 return self.view_functions[rule.endpoint](**req.view_args)
2135 File "/usr/local/lib/python3.6/site-packages/flask_restplus/api.py", line 325, in wrapper
2136 resp = resource(*args, **kwargs)
2137 File "/usr/local/lib/python3.6/site-packages/flask/views.py", line 89, in view
2138 return self.dispatch_request(*args, **kwargs)
2139 File "/usr/local/lib/python3.6/site-packages/flask_restplus/resource.py", line 44, in dispatch_request
2140 resp = meth(*args, **kwargs)
2141 File "/usr/local/lib/python3.6/site-packages/flask_restplus/marshalling.py", line 243, in wrapper
2142 resp = f(*args, **kwargs)
2143 File "/app/nomad/app/api/auth.py", line 158, in wrapper
2144 return func(*args, **kwargs)
2145 File "/app/nomad/app/api/upload.py", line 389, in get
2146 'results': [calc for calc in calcs]
2147 File "/app/nomad/app/api/upload.py", line 389, in <listcomp>
2148 'results': [calc for calc in calcs]
2149 File "/usr/local/lib/python3.6/site-packages/mongoengine/queryset/queryset.py", line 99, in _iter_results
2150 self._populate_cache()
2151 File "/usr/local/lib/python3.6/site-packages/mongoengine/queryset/queryset.py", line 118, in _populate_cache
2152 self._result_cache.append(six.next(self))
2153 File "/usr/local/lib/python3.6/site-packages/mongoengine/queryset/base.py", line 1485, in __next__
2154 raw_doc = six.next(self._cursor)
2155 File "/usr/local/lib/python3.6/site-packages/mongomock/collection.py", line 1719, in __next__
2156 doc = self._compute_results(with_limit_and_skip=True)[self._emitted]
2157 File "/usr/local/lib/python3.6/site-packages/mongomock/collection.py", line 1697, in _compute_results
2158 results = list(self._factory())
2159 File "/usr/local/lib/python3.6/site-packages/mongomock/collection.py", line 969, in _get_dataset
2160 yield self._copy_only_fields(document, fields, as_class)
2161 File "/usr/local/lib/python3.6/site-packages/mongomock/collection.py", line 1033, in _copy_only_fields
2162 return self._copy_field(doc, container)
2163 File "/usr/local/lib/python3.6/site-packages/mongomock/collection.py", line 979, in _copy_field
2164 for key, value in obj.items():
Here is an example CI/CD job: https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/jobs/1014551