blob: 038eea2c5f43073b0db76e31f3003ef8d0d7b3fb [file] [log] [blame]
import os
import sys
# add the parent parent directory to sys.path
# XXX this is very hackish :(
import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
sys.path.append(parentdir)
parentparentdir = os.path.dirname(parentdir)
sys.path.append(parentparentdir)
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xos.settings")
import django
django.setup()
from tosca.engine import XOSTosca
from core.models import User
class BaseToscaTest(object):
username = "padmin@vicci.org"
base_yaml = \
"""tosca_definitions_version: tosca_simple_yaml_1_0
description: tosca test case
imports:
- custom_types/xos.yaml
topology_template:
node_templates:
"""
def __init__(self):
self.runtest()
def make_nodetemplate(self, name, type, props={}, reqs=[]):
yml = " %s:\n type: %s\n" % (name, type)
if props:
yml = yml + " properties:\n"
for (k,v) in props.items():
yml = yml + " %s: %s\n" % (k, v)
if reqs:
yml = yml + " requirements:\n"
i=0
for (name,relat) in reqs:
yml = yml + " - req%d:\n" % i
yml = yml + " node: %s\n" % name
yml = yml + " relationship: %s\n" % relat
i = i + 1
return yml
def assert_noobj(self, cls, name):
objs = cls.objects.filter(name=name)
assert(not objs)
def assert_obj(self, cls, name, **kwargs):
obj = cls.objects.get(name=name)
assert(obj)
for (k,v) in kwargs.items():
if (getattr(obj,k,None) != v):
print "Object %s property '%s' is '%s' and should be '%s'" % (obj, k, getattr(obj,k,None), v)
assert(False)
return obj
def try_to_delete(self, cls, **kwargs):
objs = cls.objects.filter(**kwargs)
for obj in objs:
obj.delete(purge=True)
def execute(self, yml):
u = User.objects.get(email=self.username)
#print self.base_yaml+yml
xt = XOSTosca(self.base_yaml+yml, parent_dir=parentdir, log_to_console=False)
xt.execute(u)
def runtest(self):
for test in self.tests:
print "running", test
self.cleanup()
try:
getattr(self,test)()
finally:
self.cleanup()
def cleanup(self):
pass