- 'p.x' → 'project.x' - is_private: {$ne: true} → is_private: False, because true is the default.
42 lines
1.7 KiB
Python
42 lines
1.7 KiB
Python
import copy
|
|
|
|
from bson import ObjectId
|
|
from pillar.tests import common_test_data as ctd
|
|
|
|
from abstract_cloud_test import AbstractCloudTest
|
|
|
|
|
|
class StatsTest(AbstractCloudTest):
|
|
def test_count_public_nodes(self):
|
|
self.enter_app_context()
|
|
|
|
# Create two public and two private projects. Only the assets from the
|
|
# public projects should be counted.
|
|
public1 = self.create_project_with_admin(
|
|
24 * 'a', project_overrides={'_id': ObjectId(), 'is_private': False})
|
|
public2 = self.create_project_with_admin(
|
|
24 * 'b', project_overrides={'_id': ObjectId(), 'is_private': False})
|
|
private1 = self.create_project_with_admin(
|
|
24 * 'c', project_overrides={'_id': ObjectId(), 'is_private': True})
|
|
private2 = self.create_project_with_admin(
|
|
24 * 'd', project_overrides={'_id': ObjectId(), 'is_private': None})
|
|
|
|
self.assertEqual(4, self.app.db('projects').count())
|
|
|
|
# Create asset node
|
|
self.assertEqual('asset', ctd.EXAMPLE_NODE['node_type'])
|
|
example_node = copy.deepcopy(ctd.EXAMPLE_NODE)
|
|
del example_node['_id']
|
|
del example_node['project']
|
|
|
|
for pid in (public1, public2, private1, private2):
|
|
self.create_node({'_id': ObjectId(), 'project': pid, **example_node})
|
|
self.create_node({'_id': ObjectId(), 'project': pid, **example_node})
|
|
self.create_node({'_id': ObjectId(), 'project': pid, **example_node})
|
|
self.create_node({'_id': ObjectId(), 'project': pid, **example_node})
|
|
|
|
# Count the asset nodes
|
|
from cloud.stats import count_nodes
|
|
count = count_nodes({'node_type': 'asset'})
|
|
self.assertEqual(8, count)
|