Error Details
AssertionError: assert {'@id': 972, ...: True, ...}}} == {'@id': 972, ...: True, ...}}}
Omitting 3 identical items, use -vv to show
Differing items:
{'omero:details': {'@type': 'TBD#Details', 'group': {'@id': 3337, '@type': 'http://www.openmicroscopy.org/Schemas/OME/...778', ...}, 'permissions': {'@type': 'TBD#Permissions', 'canAnnotate': True, 'canDelete': True, 'canEdit': True, ...}}} != {'omero:details': {'@type': 'TBD#Details', 'group': {'@id': 3337, '@type': 'http://www.openmicroscopy.org/Schemas/OME/...778', ...}, 'permissions': {'@type': 'TBD#Permissions', 'canAnnotate': True, 'canDelete': True, 'canEdit': True, ...}}}
Full diff:
{
'@id': 972,
'@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Project',
'Name': 'Apple',
'omero:details': {
'@type': 'TBD#Details',
'group': {
'@id': 3337,
'@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#ExperimenterGroup',
'Experimenters': [
{
- '@id': 4463,
? ^
+ '@id': 4462,
? ^
'@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
'Email': '',
- 'FirstName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
- 'LastName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
- 'UserName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
+ 'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
+ 'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
+ 'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
'omero:details': {
'@type': 'TBD#Details',
'permissions': {
'@type': 'TBD#Permissions',
'canAnnotate': True,
'canDelete': False,
'canEdit': False,
'canLink': True,
'isGroupAnnotate': False,
'isGroupRead': False,
'isGroupWrite': False,
'isUserRead': True,
'isUserWrite': True,
'isWorldRead': False,
'isWorldWrite': False,
'perm': 'rw----',
},
},
'omero:owner': False,
},
{
- '@id': 4462,
? ^
+ '@id': 4463,
? ^
'@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
'Email': '',
- 'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
- 'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
- 'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
+ 'FirstName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
+ 'LastName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
+ 'UserName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
'omero:details': {
'@type': 'TBD#Details',
'permissions': {
'@type': 'TBD#Permissions',
'canAnnotate': True,
'canDelete': False,
'canEdit': False,
'canLink': True,
'isGroupAnnotate': False,
'isGroupRead': False,
'isGroupWrite': False,
'isUserRead': True,
'isUserWrite': True,
'isWorldRead': False,
'isWorldWrite': False,
'perm': 'rw----',
},
},
'omero:owner': False,
},
],
'Name': 'f107e33c-c731-4087-a612-964dc67809bb',
'omero:details': {
'@type': 'TBD#Details',
'permissions': {
'@type': 'TBD#Permissions',
'canAnnotate': True,
'canDelete': False,
'canEdit': False,
'canLink': True,
'isGroupAnnotate': True,
'isGroupRead': True,
'isGroupWrite': False,
'isUserRead': True,
'isUserWrite': True,
'isWorldRead': False,
'isWorldWrite': False,
'perm': 'rwra--',
},
},
},
'owner': {
'@id': 4462,
'@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
'Email': '',
'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
'omero:details': {
'@type': 'TBD#Details',
'permissions': {
'@type': 'TBD#Permissions',
'canAnnotate': True,
'canDelete': False,
'canEdit': False,
'canLink': True,
'isGroupAnnotate': False,
'isGroupRead': False,
'isGroupWrite': False,
'isUserRead': True,
'isUserWrite': True,
'isWorldRead': False,
'isWorldWrite': False,
'perm': 'rw----',
},
},
},
'permissions': {
'@type': 'TBD#Permissions',
'canAnnotate': True,
'canDelete': True,
'canEdit': True,
'canLink': True,
'isGroupAnnotate': True,
'isGroupRead': True,
'isGroupWrite': False,
'isUserRead': True,
'isUserWrite': True,
'isWorldRead': False,
'isWorldWrite': False,
'perm': 'rwra--',
},
},
}Stack Trace
self = <test_api_projects.TestProjects object at 0x7f9b0e091d90>
user1 = (<omero.clients.BaseClient object at 0x7f9b09d0ea90>, object #0 (::omero::model::Experimenter)
{
_id = object #1 (...nnotationLinksSeq =
{
}
_annotationLinksLoaded = False
_annotationLinksCountPerOwner =
{
}
})
user2 = (<omero.clients.BaseClient object at 0x7f9b0a544650>, object #0 (::omero::model::Experimenter)
{
_id = object #1 (...nnotationLinksSeq =
{
}
_annotationLinksLoaded = False
_annotationLinksCountPerOwner =
{
}
})
projects_user1_group1 = [object #0 (::omero::model::Project)
{
_id = object #1 (::omero::RLong)
{
_val = 972
}
_detail...
{
}
_name = object #127 (::omero::RString)
{
_val = Project2
}
_description = <nil>
}]
projects_user2_group1 = [object #0 (::omero::model::Project)
{
_id = object #1 (::omero::RLong)
{
_val = 974
}
_detail...ner =
{
}
_name = object #54 (::omero::RString)
{
_val = Axe
}
_description = <nil>
}]
def test_marshal_projects_pagination(self, user1, user2,
projects_user1_group1,
projects_user2_group1):
"""
Test pagination of projects
"""
projects = projects_user1_group1 + projects_user2_group1
projects.sort(key=lambda x: lower_or_none(unwrap(x.name)))
conn = get_connection(user1)
user_name = conn.getUser().getName()
django_client = self.new_django_client(user_name, user_name)
version = api_settings.API_VERSIONS[-1]
request_url = reverse('api_projects', kwargs={'api_version': version})
# Test a range of limits. offset = 0 by default
for limit in range(-1, 4):
rsp = get_json(django_client, request_url, {'limit': limit})
assert rsp['meta']['totalCount'] == len(projects)
if limit == -1:
# if we passed a negative number, expect the default to be used
limit = api_settings.API_LIMIT
else:
assert len(rsp['data']) == limit
assert rsp['meta']['limit'] == limit
> assert_objects(conn, rsp['data'], projects[0:limit])
test/integration/test_api_projects.py:411:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
conn = <omero.gateway._BlitzGateway object at 0x7f9b090193d0>
json_objects = [{'@id': 972, '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Project', 'Name': 'Apple', 'omero:details': ......}, 'permissions': {'@type': 'TBD#Permissions', 'canAnnotate': True, 'canDelete': True, 'canEdit': True, ...}}, ...}]
omero_ids_objects = [object #0 (::omero::model::Project)
{
_id = object #1 (::omero::RLong)
{
_val = 972
}
_detail...
{
}
_name = object #127 (::omero::RString)
{
_val = Project2
}
_description = <nil>
}]
dtype = 'Project', group = '-1'
def assert_objects(conn, json_objects, omero_ids_objects, dtype="Project",
group='-1'):
"""
Load objects from OMERO, via conn.getObjects(), marshal with
omero_marshal and compare with json_objects.
omero_ids_objects can be IDs or list of omero.model objects.
"""
pids = []
for p in omero_ids_objects:
try:
pids.append(int(p))
except TypeError:
pids.append(p.id.val)
if len(pids) == 0:
assert len(json_objects) == 0
return
conn.SERVICE_OPTS.setOmeroGroup(group)
projects = conn.getObjects(dtype, pids, respect_order=True)
projects = [p._obj for p in projects]
expected = marshal_objects(projects)
assert len(json_objects) == len(expected)
for o1, o2 in zip(json_objects, expected):
# remove any urls from json
for key in list(o1.keys()):
if key.startswith('url:'):
del o1[key]
> assert o1 == o2
E AssertionError: assert {'@id': 972, ...: True, ...}}} == {'@id': 972, ...: True, ...}}}
E
E Omitting 3 identical items, use -vv to show
E Differing items:
E {'omero:details': {'@type': 'TBD#Details', 'group': {'@id': 3337, '@type': 'http://www.openmicroscopy.org/Schemas/OME/...778', ...}, 'permissions': {'@type': 'TBD#Permissions', 'canAnnotate': True, 'canDelete': True, 'canEdit': True, ...}}} != {'omero:details': {'@type': 'TBD#Details', 'group': {'@id': 3337, '@type': 'http://www.openmicroscopy.org/Schemas/OME/...778', ...}, 'permissions': {'@type': 'TBD#Permissions', 'canAnnotate': True, 'canDelete': True, 'canEdit': True, ...}}}
E
E Full diff:
E {
E '@id': 972,
E '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Project',
E 'Name': 'Apple',
E 'omero:details': {
E '@type': 'TBD#Details',
E 'group': {
E '@id': 3337,
E '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#ExperimenterGroup',
E 'Experimenters': [
E {
E - '@id': 4463,
E ? ^
E + '@id': 4462,
E ? ^
E '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
E 'Email': '',
E - 'FirstName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E - 'LastName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E - 'UserName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E + 'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E + 'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E + 'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E 'omero:details': {
E '@type': 'TBD#Details',
E 'permissions': {
E '@type': 'TBD#Permissions',
E 'canAnnotate': True,
E 'canDelete': False,
E 'canEdit': False,
E 'canLink': True,
E 'isGroupAnnotate': False,
E 'isGroupRead': False,
E 'isGroupWrite': False,
E 'isUserRead': True,
E 'isUserWrite': True,
E 'isWorldRead': False,
E 'isWorldWrite': False,
E 'perm': 'rw----',
E },
E },
E 'omero:owner': False,
E },
E {
E - '@id': 4462,
E ? ^
E + '@id': 4463,
E ? ^
E '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
E 'Email': '',
E - 'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E - 'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E - 'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E + 'FirstName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E + 'LastName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E + 'UserName': '651d8fe7-d2eb-4c80-b281-cdd84fa2ed15',
E 'omero:details': {
E '@type': 'TBD#Details',
E 'permissions': {
E '@type': 'TBD#Permissions',
E 'canAnnotate': True,
E 'canDelete': False,
E 'canEdit': False,
E 'canLink': True,
E 'isGroupAnnotate': False,
E 'isGroupRead': False,
E 'isGroupWrite': False,
E 'isUserRead': True,
E 'isUserWrite': True,
E 'isWorldRead': False,
E 'isWorldWrite': False,
E 'perm': 'rw----',
E },
E },
E 'omero:owner': False,
E },
E ],
E 'Name': 'f107e33c-c731-4087-a612-964dc67809bb',
E 'omero:details': {
E '@type': 'TBD#Details',
E 'permissions': {
E '@type': 'TBD#Permissions',
E 'canAnnotate': True,
E 'canDelete': False,
E 'canEdit': False,
E 'canLink': True,
E 'isGroupAnnotate': True,
E 'isGroupRead': True,
E 'isGroupWrite': False,
E 'isUserRead': True,
E 'isUserWrite': True,
E 'isWorldRead': False,
E 'isWorldWrite': False,
E 'perm': 'rwra--',
E },
E },
E },
E 'owner': {
E '@id': 4462,
E '@type': 'http://www.openmicroscopy.org/Schemas/OME/2016-06#Experimenter',
E 'Email': '',
E 'FirstName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E 'LastName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E 'UserName': 'dc3bef0e-c2f3-4f4b-bda8-843218b38778',
E 'omero:details': {
E '@type': 'TBD#Details',
E 'permissions': {
E '@type': 'TBD#Permissions',
E 'canAnnotate': True,
E 'canDelete': False,
E 'canEdit': False,
E 'canLink': True,
E 'isGroupAnnotate': False,
E 'isGroupRead': False,
E 'isGroupWrite': False,
E 'isUserRead': True,
E 'isUserWrite': True,
E 'isWorldRead': False,
E 'isWorldWrite': False,
E 'perm': 'rw----',
E },
E },
E },
E 'permissions': {
E '@type': 'TBD#Permissions',
E 'canAnnotate': True,
E 'canDelete': True,
E 'canEdit': True,
E 'canLink': True,
E 'isGroupAnnotate': True,
E 'isGroupRead': True,
E 'isGroupWrite': False,
E 'isUserRead': True,
E 'isUserWrite': True,
E 'isWorldRead': False,
E 'isWorldWrite': False,
E 'perm': 'rwra--',
E },
E },
E }
test/integration/test_api_projects.py:178: AssertionError