def test_views_vf_get_units(get_vfolder_units_views): (user, vfolder, search_params, url_params, response) = get_vfolder_units_views result = json.loads(response.content) assert "unitGroups" in result assert isinstance(result["unitGroups"], list) for k in "start", "end", "total": assert k in result assert isinstance(result[k], int) search_params["vfolder"] = vfolder if result["unitGroups"]: total, start, end, expected_units = calculate_search_results( search_params, user) assert result["total"] == total assert result["start"] == start assert result["end"] == end for i, group in enumerate(expected_units): result_group = result["unitGroups"][i] for store, data in group.items(): result_data = result_group[store] assert ( [u["id"] for u in result_data["units"]] == [u["id"] for u in data["units"]])
def test_get_units(get_units_views): (user, search_params, url_params, response) = get_units_views result = json.loads(response.content) path = parse_qs(url_params)["path"][0] permission_context = None if path.strip("/") in ["", "projects"]: permission_context = Directory.objects.get(pootle_path="/projects/") elif path.startswith("/projects/"): try: permission_context = Project.objects.get( code=path[10:].split("/")[0]).directory except Project.DoesNotExist: assert response.status_code == 404 assert "unitGroups" not in result return user_cannot_view = ( permission_context and not check_user_permission( user, "administrate", permission_context)) if user_cannot_view: assert response.status_code == 404 assert "unitGroups" not in result return assert "unitGroups" in result assert isinstance(result["unitGroups"], list) for k in "start", "end", "total": assert k in result assert isinstance(result[k], int) if result["unitGroups"]: total, start, end, expected_units = calculate_search_results( search_params, user) assert result["total"] == total assert result["start"] == start assert result["end"] == end for i, group in enumerate(expected_units): result_group = result["unitGroups"][i] for store, data in group.items(): result_data = result_group[store] assert ( [u["id"] for u in result_data["units"]] == [u["id"] for u in data["units"]])
def test_get_units(get_units_views): (user, search_params, url_params, response) = get_units_views result = json.loads(response.content) assert "unitGroups" in result assert isinstance(result["unitGroups"], list) if result["unitGroups"]: expected_uids, expected_units = calculate_search_results( search_params, user) if search_params.get("initial"): assert list(result["uIds"]) == list(expected_uids) else: assert "uIds" not in result for i, group in enumerate(expected_units): result_group = result["unitGroups"][i] for store, data in group.items(): result_data = result_group[store] assert ( [u["url"] for u in result_data["units"]] == [u["url"] for u in data["units"]])