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()
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()
"""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"""