Beispiel #1
0
 def _update(self):
     """Do a 'git pull'"""
     cmd = ['git', 'pull']
     p = Popen(cmd, stdout=PIPE, stderr=PIPE, cwd=self.REPO_ROOT)
     log.info("Updating repo")
     stdout, stderr = p.communicate()
     if p.returncode != 0:
         log.error("git pull returned {0}: {1}".format(
                   p.returncode, stderr))
     else:
         chef.build_node_data_bag()
Beispiel #2
0
 def _clone(self):
     """Clone a git repository"""
     if not os.path.exists(REPO_BASE_PATH):
         os.makedirs(REPO_BASE_PATH)
     cmd = ['git', 'clone', '--depth', '1', REPO['URL'], REPO['NAME']]
     p = Popen(cmd, stdout=PIPE, stderr=PIPE, cwd=REPO_BASE_PATH)
     log.info('Cloning Git repo {0}'.format(REPO['URL']))
     stdout, stderr = p.communicate()
     if p.returncode != 0:
         log.error("{0} returned {1}: {2}".format(
                   " ".join(cmd), p.returncode, stderr))
     else:
         chef.build_node_data_bag()
Beispiel #3
0
"""Tests for the kitchen.backends app"""
import simplejson as json
from django.test import TestCase
from mock import patch

from kitchen.backends import lchef as chef
from kitchen.backends import plugins
from kitchen.backends.plugins import loader

chef.build_node_data_bag()
TOTAL_NODES = 10


class TestRepo(TestCase):

    def test_good_repo(self):
        """Should return true when a valid repository is found"""
        self.assertTrue(chef._check_kitchen())

    @patch('kitchen.backends.lchef.KITCHEN_DIR', '/badrepopath/')
    def test_bad_repo(self):
        """Should raise RepoError when the kitchen is not found"""
        self.assertRaises(chef.RepoError, chef._check_kitchen)

    @patch('kitchen.backends.lchef.KITCHEN_DIR', '../kitchen/')
    def test_invalid_kitchen(self):
        """Should raise RepoError when the kitchen is incomplete"""
        self.assertRaises(chef.RepoError, chef._check_kitchen)

    def test_missing_node_data_bag(self):
        """Should raise RepoError when there is no node data bag"""