From b957efd57065b350a7e32fea5d70aae4bfccd33f Mon Sep 17 00:00:00 2001 From: "Benjamin W. Smith" Date: Sat, 7 Nov 2009 18:54:45 -0500 Subject: Stub out template parser tests and code. Ignore .swp files (why hadn't I done that before?!) --- .hgignore | 1 + mrbelvedere/template_parser.py | 22 ++++++++++++++++++++++ tests/test_template_parser.py | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 mrbelvedere/template_parser.py create mode 100644 tests/test_template_parser.py diff --git a/.hgignore b/.hgignore index f9ae076..a1f944b 100644 --- a/.hgignore +++ b/.hgignore @@ -1,5 +1,6 @@ \.pyc$ \.coverage$ +\.swp$ ^build$ ^dist$ ^build$ diff --git a/mrbelvedere/template_parser.py b/mrbelvedere/template_parser.py new file mode 100644 index 0000000..6217d30 --- /dev/null +++ b/mrbelvedere/template_parser.py @@ -0,0 +1,22 @@ +""" Parse build templates +""" +import yaml + + +class TemplateParser(object): + + def __init__(self): + self.yaml = yaml + self._current_template_file = None + self.template_data = None + + @property + def template_file(self): + return self._current_template_file + + @template_file.setter + def template_file(self, file): + self._current_template_file = open(file) + + def load_template(self): + self.template_data = self.yaml.load(self.template_file.read()).get('template') diff --git a/tests/test_template_parser.py b/tests/test_template_parser.py new file mode 100644 index 0000000..5cb6e2b --- /dev/null +++ b/tests/test_template_parser.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python +from dingus import Dingus, DingusTestCase, DontCare +import nose.tools as nose_tools +from mrbelvedere import template_parser +from mrbelvedere.template_parser import TemplateParser +import yaml + +class WhenSettingUp(DingusTestCase(TemplateParser, exclude=['yaml'])): + + def setup(self): + super(WhenSettingUp, self).setup() + self.template_parser = TemplateParser() + + def should_setup_yaml(self): + assert isinstance(self.template_parser.yaml, type(yaml)) + + def should_degine_template_data_attribute(self): + assert self.template_parser.template_data is None + + def should_define_file_attribute(self): + assert self.template_parser._current_template_file is None + + def should_set_file_to_parse(self): + self.template_parser.template_file = 'examples/webserver.yaml' + assert self.template_parser.template_file is not None + + def should_load_template(self): + self.template_parser.template_file = 'examples/webserver.yaml' + self.template_parser.load_template() + assert self.template_parser.template_data is not None + + def should_raise_io_error(self): + try: + self.template_parser.template_file = 'examples/invalid_template.yaml' + except IOError: + assert True -- cgit v1.2.3