From a9848c3fad6848ea9e63746d71832e89360c8178 Mon Sep 17 00:00:00 2001 From: Tobias Johansson Date: Thu, 4 Oct 2018 10:11:38 +0200 Subject: [PATCH] Random asset bug fix: If 2 assets from the same project where returned, the second one would get a corrupt url --- cloud/routes.py | 2 -- tests/test_routes.py | 9 ++++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/cloud/routes.py b/cloud/routes.py index 0a5bec8..f86ce9a 100644 --- a/cloud/routes.py +++ b/cloud/routes.py @@ -309,8 +309,6 @@ def get_random_featured_nodes() -> typing.List[dict]: node = Node(node_document) node.picture = get_file(node.picture, api=api) - node.url = url_for_node(node=node) - node.project.url = url_for('projects.view', project_url=node.project.url) node.project.picture_square = get_file(node.project.picture_square, api=api) featured_node_documents.append(node) diff --git a/tests/test_routes.py b/tests/test_routes.py index f12ef1a..5ef86fa 100644 --- a/tests/test_routes.py +++ b/tests/test_routes.py @@ -25,6 +25,8 @@ class RandomFeaturedNodeTest(AbstractCloudTest): self.fake_now = utcnow() def test_random_feature_node_returns_3_nodes(self): + from pillar.web.nodes.routes import url_for_node + base_node = { 'name': 'Just a node name', 'project': self.pid, @@ -58,11 +60,12 @@ class RandomFeaturedNodeTest(AbstractCloudTest): with self.app.test_request_context(): random_assets = get_random_featured_nodes() - actual_ids = [asset['_id'] for asset in random_assets] self.assertIs(len(random_assets), 3) - for aid in actual_ids: - self.assertIn(ObjectId(aid), all_asset_ids) + for asset in random_assets: + aid = asset['_id'] + self.assertIn(ObjectId(asset['_id']), all_asset_ids) + self.assertEquals(f'/p/default-project/{aid}', url_for_node(node=asset)) def test_random_feature_ignore(self): def assert_ignored():