Random asset bug fix: If 2 assets from the same project where returned, the second one would get a corrupt url
This commit is contained in:
@@ -309,8 +309,6 @@ def get_random_featured_nodes() -> typing.List[dict]:
|
|||||||
|
|
||||||
node = Node(node_document)
|
node = Node(node_document)
|
||||||
node.picture = get_file(node.picture, api=api)
|
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)
|
node.project.picture_square = get_file(node.project.picture_square, api=api)
|
||||||
featured_node_documents.append(node)
|
featured_node_documents.append(node)
|
||||||
|
|
||||||
|
@@ -25,6 +25,8 @@ class RandomFeaturedNodeTest(AbstractCloudTest):
|
|||||||
self.fake_now = utcnow()
|
self.fake_now = utcnow()
|
||||||
|
|
||||||
def test_random_feature_node_returns_3_nodes(self):
|
def test_random_feature_node_returns_3_nodes(self):
|
||||||
|
from pillar.web.nodes.routes import url_for_node
|
||||||
|
|
||||||
base_node = {
|
base_node = {
|
||||||
'name': 'Just a node name',
|
'name': 'Just a node name',
|
||||||
'project': self.pid,
|
'project': self.pid,
|
||||||
@@ -58,11 +60,12 @@ class RandomFeaturedNodeTest(AbstractCloudTest):
|
|||||||
|
|
||||||
with self.app.test_request_context():
|
with self.app.test_request_context():
|
||||||
random_assets = get_random_featured_nodes()
|
random_assets = get_random_featured_nodes()
|
||||||
actual_ids = [asset['_id'] for asset in random_assets]
|
|
||||||
|
|
||||||
self.assertIs(len(random_assets), 3)
|
self.assertIs(len(random_assets), 3)
|
||||||
for aid in actual_ids:
|
for asset in random_assets:
|
||||||
self.assertIn(ObjectId(aid), all_asset_ids)
|
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 test_random_feature_ignore(self):
|
||||||
def assert_ignored():
|
def assert_ignored():
|
||||||
|
Reference in New Issue
Block a user