diff --git a/cloudkittyclient/tests/v1/test_report.py b/cloudkittyclient/tests/v1/test_report.py new file mode 100644 index 0000000..4eb5773 --- /dev/null +++ b/cloudkittyclient/tests/v1/test_report.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Copyright 2014 Objectif Libre +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# @author: François Magimel (linkid) + +""" +Tests for the manager report `cloudkittyclient.v1.report`. +""" + +from cloudkittyclient.openstack.common.apiclient import fake_client +from cloudkittyclient.tests import base +from cloudkittyclient.v1 import client +from cloudkittyclient.v1 import report + + +fixtures = { + '/v1/report/total': { + 'GET': ( + {}, + '10.0' + ), + } +} + + +class ReportManagerTest(base.TestCase): + def setUp(self): + super(ReportManagerTest, self).setUp() + fake_http_client = fake_client.FakeHTTPClient(fixtures=fixtures) + api_client = client.Client(fake_http_client) + self.mgr = report.ReportManager(api_client) + + def test_get(self): + _report = self.mgr.get() + self.assertIn('Report', repr(_report)) + self.assertEqual(10.0, _report.total) diff --git a/cloudkittyclient/v1/client.py b/cloudkittyclient/v1/client.py index 40230d1..a499f47 100644 --- a/cloudkittyclient/v1/client.py +++ b/cloudkittyclient/v1/client.py @@ -20,6 +20,7 @@ OpenStack Client interface. Handles the REST calls and responses. """ from cloudkittyclient.openstack.common.apiclient import client +from cloudkittyclient.v1 import report class Client(client.BaseClient): @@ -28,3 +29,5 @@ class Client(client.BaseClient): def __init__(self, http_client, extensions=None): """Initialize a new client for the Cloudkitty v1 API.""" super(Client, self).__init__(http_client, extensions) + + self.report = report.ReportManager(self) diff --git a/cloudkittyclient/v1/report.py b/cloudkittyclient/v1/report.py index 762f41a..014f171 100644 --- a/cloudkittyclient/v1/report.py +++ b/cloudkittyclient/v1/report.py @@ -53,4 +53,7 @@ class ReportManager(base.CrudManager): return self.resource_class(self, body, loaded=True) def get(self, **kwargs): + """Get the amount to pay for the current month. + /v1/report/total + """ return super(ReportManager, self).get(base_url='/v1', **kwargs)