X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sla%2Fslaclient%2Fservice%2Ffed4fire%2Ftests%2Ftestparsejson.py;fp=sla%2Fslaclient%2Fservice%2Ffed4fire%2Ftests%2Ftestparsejson.py;h=7710f0ff0a7a4a174dc0e14d8789685358a158b0;hb=c99f1bd98ff355bd3f63b4929739ea5bd92cd6a3;hp=0000000000000000000000000000000000000000;hpb=e49329b43a640671476f2a793bde1d40b57e4d2e;p=myslice.git diff --git a/sla/slaclient/service/fed4fire/tests/testparsejson.py b/sla/slaclient/service/fed4fire/tests/testparsejson.py new file mode 100755 index 00000000..7710f0ff --- /dev/null +++ b/sla/slaclient/service/fed4fire/tests/testparsejson.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- + +from unittest import TestCase +import datetime +import json + +from slaclient.service.fed4fire import jsonparser + + +class ParseJsonTestCase(TestCase): + + def setUp(self): + + self.from_json = None + + self.expirationtime = datetime.datetime.combine( + datetime.date.today(), + datetime.time(0, 0, 0) + ) + + self.template = dict( + template_id="template-id", + template_name="template-name", + provider="provider-id", + service_id="service-id", + expiration_time=self.expirationtime.isoformat(), + service_properties=[ + dict(servicename=None, name="uptime", metric=None, + location=None), + dict(servicename="service-name1", name="uptime", metric=None, + location=""), + dict(servicename="service-name2", name="metric1", + metric="xs:string", location=None), + dict(servicename="service-name2", name="metric2", + metric="xs:double", location="//monitoring/metric2") + ] + ) + + self.agreement = dict( + agreement_id="agreement-id", + template_id="template-id", + agreement_name="agreement-name", + consumer="consumer-id", + provider="provider-id", + service_id="service-id", + expiration_time=self.expirationtime.isoformat(), + guarantees=[ + dict(name="sin", bounds=(-1, 1)) + ] + ) + + def _check_dict(self, d, is_agreement): + o = self.from_json(json.dumps(d)) + self.assertEquals(d.get("template_id", None), o.template_id) + if is_agreement: + self.assertEquals(d.get("agreement_id"), o.agreement_id or None) + self.assertEquals(d.get("agreement_name"), o.agreement_name) + self.assertEquals(d.get("consumer"), o.consumer or None) + else: + self.assertEquals(d.get("template_name"), o.template_name or None) + self.assertEquals(d.get("provider"), o.provider) + self.assertEquals(d.get("service_id"), o.service_id) + self.assertEquals(d.get("expiration_time"), o.expiration_time_iso) + if "service_properties" in d: + for i in range(0, len(d["service_properties"])): + self.assertEquals( + d["service_properties"][i].get("servicename"), + o.service_properties[i].servicename + ) + self.assertEquals( + d["service_properties"][i].get("name"), + o.service_properties[i].name + ) + self.assertEquals( + d["service_properties"][i].get("metric"), + o.service_properties[i].metric + ) + self.assertEquals( + d["service_properties"][i].get("location"), + o.service_properties[i].location + ) + if "guarantees" in d: + for i in range(0, len(d["guarantees"])): + self.assertEquals( + d["guarantees"][i].get("name"), + o.guarantee_terms[i].metric_name + ) + self.assertEquals( + d["guarantees"][i].get("bounds"), + o.guarantee_terms[i].bounds + ) + + def test_template_from_json(self): + self.from_json = jsonparser.templateinput_from_json + + # + # Add fields one by one, and check + # + d = dict() + for key in self.template: + if key == "service_properties": + d[key] = [] + for prop in self.template[key]: + d[key].append(prop) + self._check_dict(d, False) + else: + d[key] = self.template[key] + self._check_dict(d, False) + + def test_agreement_from_json(self): + self.from_json = jsonparser.agreementinput_from_json + + # + # Add fields one by one, and check + # + d = dict() + + for key in self.agreement: + if key == "guarantees": + d[key] = [] + for term in self.agreement[key]: + d[key].append(term) + self._check_dict(d, True) + else: + d[key] = self.agreement[key] + self._check_dict(d, True)