~ubuntu-branches/ubuntu/saucy/python-ceilometerclient/saucy

« back to all changes in this revision

Viewing changes to tests/v2/test_statistics.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Chuck Short, Yolanda Robla
  • Date: 2013-07-04 07:13:11 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20130704071311-jmbr0fvce4fhtp79
Tags: 1.0.1-0ubuntu1
[ Chuck Short ]
* New upstream release. 
* debian/control: 
  - Dropped python-unittest2, python-nose.
  - Added python-coverage, python-fixtures, python-subunit,
    python-testtools, python-testrepository, python-d2to1,
    python-pbr
  - Dropped duplicate python-setuptools-git
  - Dropped pep8.
* debian/rules: Convert testsuite to use testr.

[ Yolanda Robla ]
* debian/tests: added autopkg tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
#    License for the specific language governing permissions and limitations
14
14
#    under the License.
15
15
 
16
 
import unittest
17
 
 
18
16
import ceilometerclient.v2.statistics
19
17
from tests import utils
20
18
 
21
 
 
 
19
base_url = '/v2/meters/instance/statistics'
 
20
qry = 'q.op=&q.op=&q.value=foo&q.value=bar&q.field=resource_id&q.field=source'
 
21
period = '&period=60'
 
22
samples = [{
 
23
              u'count': 135,
 
24
              u'duration_start': u'2013-02-04T10:51:42',
 
25
              u'min': 1.0,
 
26
              u'max': 1.0,
 
27
              u'duration_end':
 
28
              u'2013-02-05T15:46:09',
 
29
              u'duration': 1734.0,
 
30
              u'avg': 1.0,
 
31
              u'sum': 135.0,
 
32
          }]
22
33
fixtures = {
23
 
    '/v2/meters/instance/statistics':
24
 
    {
25
 
        'GET': (
26
 
            {},
27
 
            [{
28
 
                u'count': 135,
29
 
                u'duration_start': u'2013-02-04T10:51:42',
30
 
                u'min': 1.0,
31
 
                u'max': 1.0,
32
 
                u'duration_end':
33
 
                u'2013-02-05T15:46:09',
34
 
                u'duration': 1734.0,
35
 
                u'avg': 1.0,
36
 
                u'sum': 135.0,
37
 
            }]
38
 
        ),
39
 
    },
40
 
    '/v2/meters/instance/statistics?q.op=&q.op=&q.value=foo&q.value=bar&q.field=resource_id&q.field=source':
41
 
    {
42
 
        'GET': (
43
 
            {},
44
 
            [{
45
 
                u'count': 135,
46
 
                u'duration_start': u'2013-02-04T10:51:42',
47
 
                u'min': 1.0,
48
 
                u'max': 1.0,
49
 
                u'duration_end':
50
 
                u'2013-02-05T15:46:09',
51
 
                u'duration': 1734.0,
52
 
                u'avg': 1.0,
53
 
                u'sum': 135.0,
54
 
            }]
55
 
        ),
56
 
    }
 
34
    base_url:
 
35
    {
 
36
        'GET': (
 
37
            {},
 
38
            samples
 
39
        ),
 
40
    },
 
41
    '%s?%s' % (base_url, qry):
 
42
    {
 
43
        'GET': (
 
44
            {},
 
45
            samples
 
46
        ),
 
47
    },
 
48
    '%s?%s%s' % (base_url, qry, period):
 
49
    {
 
50
        'GET': (
 
51
            {},
 
52
            samples
 
53
        ),
 
54
    },
57
55
}
58
56
 
59
57
 
60
 
class StatisticsManagerTest(unittest.TestCase):
 
58
class StatisticsManagerTest(utils.BaseTestCase):
61
59
 
62
60
    def setUp(self):
 
61
        super(StatisticsManagerTest, self).setUp()
63
62
        self.api = utils.FakeAPI(fixtures)
64
63
        self.mgr = ceilometerclient.v2.statistics.StatisticsManager(self.api)
65
64
 
82
81
                                   ]))
83
82
        expect = [
84
83
            ('GET',
85
 
             '/v2/meters/instance/statistics?q.op=&q.op=&q.value=foo&q.value=bar&q.field=resource_id&q.field=source',
86
 
             {}, None),
 
84
             '%s?%s' % (base_url, qry), {}, None),
 
85
        ]
 
86
        self.assertEqual(self.api.calls, expect)
 
87
        self.assertEqual(len(stats), 1)
 
88
        self.assertEqual(stats[0].count, 135)
 
89
 
 
90
    def test_list_by_meter_name_with_period(self):
 
91
        stats = list(self.mgr.list(meter_name='instance',
 
92
                                   q=[
 
93
                                       {"field": "resource_id",
 
94
                                        "value": "foo"},
 
95
                                       {"field": "source",
 
96
                                        "value": "bar"},
 
97
                                   ],
 
98
                                   period=60))
 
99
        expect = [
 
100
            ('GET',
 
101
             '%s?%s%s' % (base_url, qry, period), {}, None),
87
102
        ]
88
103
        self.assertEqual(self.api.calls, expect)
89
104
        self.assertEqual(len(stats), 1)