~ubuntu-branches/ubuntu/trusty/ceilometer/trusty-proposed

« back to all changes in this revision

Viewing changes to ceilometer/tests/storage/test_impl_sqlalchemy.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, James Page, Chuck Short
  • Date: 2014-01-23 15:08:11 UTC
  • mfrom: (1.1.11)
  • Revision ID: package-import@ubuntu.com-20140123150811-1zaismsuyh1hcl8y
Tags: 2014.1~b2-0ubuntu1
[ James Page ]
* d/control: Add python-jsonpath-rw to BD's.
* d/p/fix-setup-requirements.patch: Bump WebOb to support < 1.4.
 (LP: #1261101)

[ Chuck Short ]
* New upstream version.
* debian/control, debian/ceilometer-common.install: Split out
  ceilometer-alarm-evaluator and ceilometer-alarm-notifier into their
  own packages. (LP: #1250002)
* debian/ceilometer-agent-central.logrotate,
  debian/ceilometer-agent-compute.logrotate,
  debian/ceilometer-api.logrotate,
  debian/ceilometer-collector.logrotate: Add logrotate files, 
  thanks to Ahmed Rahal. (LP: #1224223)
* Fix typos in upstart files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
 
29
29
from mock import patch
30
30
 
 
31
import ceilometer.openstack.common.db.sqlalchemy.session as sqlalchemy_session
 
32
from ceilometer.openstack.common import timeutils
31
33
from ceilometer.storage import models
32
34
from ceilometer.storage.sqlalchemy import models as sql_models
33
35
from ceilometer.tests import db as tests_db
34
 
from ceilometer import utils
 
36
from ceilometer.tests.storage import test_storage_scenarios as scenarios
35
37
 
36
38
 
37
39
class EventTestBase(tests_db.TestBase):
144
146
        self.assertIsNone(trait.t_int)
145
147
        self.assertIsNone(trait.t_string)
146
148
        self.assertIsNone(trait.t_float)
147
 
        self.assertEqual(trait.t_datetime, utils.dt_to_decimal(now))
 
149
        self.assertEqual(trait.t_datetime, now)
148
150
        self.assertIsNotNone(trait.trait_type.desc)
149
151
 
150
152
    def test_bad_event(self):
175
177
 
176
178
    def test_model_table_args(self):
177
179
        self.assertIsNotNone(sql_models.table_args())
 
180
 
 
181
 
 
182
class RelationshipTest(scenarios.DBTestBase):
 
183
    database_connection = 'mysql://localhost'
 
184
 
 
185
    def test_clear_metering_data_meta_tables(self):
 
186
        timeutils.utcnow.override_time = datetime.datetime(2012, 7, 2, 10, 45)
 
187
        self.conn.clear_expired_metering_data(3 * 60)
 
188
 
 
189
        session = sqlalchemy_session.get_session()
 
190
        meta_tables = [sql_models.MetaText, sql_models.MetaFloat,
 
191
                       sql_models.MetaBigInt, sql_models.MetaBool]
 
192
        for table in meta_tables:
 
193
            self.assertEqual(session.query(table)
 
194
                .filter(~table.id.in_(
 
195
                    session.query(sql_models.Meter.id)
 
196
                        .group_by(sql_models.Meter.id)
 
197
                        )).count(), 0)
 
198
 
 
199
    def test_clear_metering_data_associations(self):
 
200
        timeutils.utcnow.override_time = datetime.datetime(2012, 7, 2, 10, 45)
 
201
        self.conn.clear_expired_metering_data(3 * 60)
 
202
 
 
203
        session = sqlalchemy_session.get_session()
 
204
        self.assertEqual(session.query(sql_models.sourceassoc)
 
205
            .filter(~sql_models.sourceassoc.c.meter_id.in_(
 
206
                session.query(sql_models.Meter.id)
 
207
                    .group_by(sql_models.Meter.id)
 
208
                    )).count(), 0)
 
209
        self.assertEqual(session.query(sql_models.sourceassoc)
 
210
            .filter(~sql_models.sourceassoc.c.project_id.in_(
 
211
                session.query(sql_models.Project.id)
 
212
                    .group_by(sql_models.Project.id)
 
213
                    )).count(), 0)
 
214
        self.assertEqual(session.query(sql_models.sourceassoc)
 
215
            .filter(~sql_models.sourceassoc.c.user_id.in_(
 
216
                session.query(sql_models.User.id)
 
217
                    .group_by(sql_models.User.id)
 
218
                    )).count(), 0)