def test_query_aggregate_distinct_attribute(client): """Test DISTINCT on an attribute in the search result. Support for adding aggregate functions has been added in Issue #32. """ require_icat_version("4.7.0", "SELECT DISTINCT in queries") query = Query(client, "Datafile", attribute="datafileFormat.name", conditions={ "dataset.investigation.id": "= %d" % investigation.id }) print(str(query)) res = client.search(query) assert sorted(res) == ["NeXus", "NeXus", "other", "other"] query.setAggregate("DISTINCT") print(str(query)) res = client.search(query) assert sorted(res) == ["NeXus", "other"]
def test_query_aggregate_distinct_related_obj(client): """Test DISTINCT on a related object in the search result. Support for adding aggregate functions has been added in Issue #32. """ require_icat_version("4.7.0", "SELECT DISTINCT in queries") query = Query(client, "Datafile", attribute="datafileFormat", conditions={ "dataset.investigation.id": "= %d" % investigation.id }) print(str(query)) res = client.search(query) assert len(res) == 4 for n in res: assert isinstance(n, icat.entity.Entity) query.setAggregate("DISTINCT") print(str(query)) res = client.search(query) assert len(res) == 2 for n in res: assert isinstance(n, icat.entity.Entity)