48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
import mock
|
|
from . import test_interface, helpers
|
|
from artifice import database
|
|
from artifice import models
|
|
from datetime import timedelta
|
|
from .constants import TENANT_ID
|
|
|
|
|
|
class TestDatabaseModule(test_interface.TestInterface):
|
|
|
|
def test_adding_to_db(self):
|
|
"""Tests adding all the data to the database."""
|
|
|
|
usage = helpers.get_usage()
|
|
|
|
db = database.Database(self.session)
|
|
db.insert_tenant(TENANT_ID,
|
|
"demo", "")
|
|
|
|
# patch to mock out the novaclient call
|
|
with mock.patch('artifice.helpers.flavor_name') as flavor_name:
|
|
flavor_name.side_effect = lambda x: x
|
|
|
|
db.enter(usage.values(), self.start, self.end)
|
|
|
|
count = 0
|
|
for val in usage.values():
|
|
for service in val.usage():
|
|
count += 1
|
|
|
|
self.assertEqual(self.session.query(models.UsageEntry).count(), count)
|
|
self.assertEqual(self.session.query(models.Resource).count(),
|
|
len(usage.values()))
|
|
self.assertEqual(self.session.query(models.Tenant).count(), 1)
|
|
|
|
def test_get_from_db(self):
|
|
"""Test to ensure the data in the database matches the data entered."""
|
|
numb_resources = 32
|
|
|
|
helpers.fill_db(self.session, 5, numb_resources, self.end)
|
|
|
|
db = database.Database(self.session)
|
|
|
|
for i in range(5):
|
|
usage = db.usage(self.start, self.start + timedelta(days=60),
|
|
"tenant_id_" + str(i))
|
|
self.assertEqual(usage.count(), numb_resources)
|