class TestRedis(TestCase): address = ('', 1648) def setUp(self): path = os.path.join(os.path.dirname(__file__), 'test_redis') if (os.path.exists(path)): shutil.rmtree(path) self.node = LocalNode(path=path, id='test_redis') self._server = eventlet.spawn(self.node.serve, self.address) self.node.nanny() def tearDown(self): self.node.terminate() self._server.kill() eventlet.sleep(0) try: shutil.rmtree(os.path.join(os.path.dirname(__file__), 'test_redis')) except: pass def test_redis(self): redis = { 'type': 'sovereign.contrib.redis.Service', } self.node.create_service('redis', redis) self.assertFalse(self.node._get_service('redis').failed)
class TestWeb(TestCase): WEB_FRONT = ('127.0.0.1', 7892) # randomly decided, hope it works. WEB_BACK = ('127.0.0.1', 7893) def _request(self, url, method='GET', body=None, headers=None): conn = httplib.HTTPConnection(self.WEB_FRONT[0], self.WEB_FRONT[1], url) conn.request(method, url, body, headers or {}) return conn.getresponse() def setUp(self): self._path = os.path.join(os.path.dirname(__file__), 'web') if (os.path.exists(self._path)): shutil.rmtree(self._path) self.node = LocalNode(path=self._path, id='node-a') self._server = eventlet.spawn(self.node.serve, ('127.0.0.1', 1648)) self.node.nanny() def tearDown(self): self._server.kill() eventlet.sleep(0) if (os.path.exists(self._path)): shutil.rmtree(self._path) def test_web_service(self): web = { 'type': 'sovereign.contrib.web.Service', 'id': 'web-front', 'address': self.WEB_FRONT, 'motd': 'Greetings', } service = self.node.create_service('web', web) response = self._request('/') self.assertEqual(response.status, 200) response = self._request('/asdf') self.assertEqual(response.status, 404) self.node.delete_service(service['id']) def test_web_proxy(self): services = [ { 'type': 'sovereign.contrib.web.Service', 'id': 'web-front', 'address': self.WEB_FRONT, }, { 'type': 'sovereign.contrib.web.Service', 'id': 'web-back', 'address': self.WEB_BACK, 'motd': 'Greetings' }, ] # #for service in services: # self.node.create_service(service['id'], service) # #response = self._request('/') #self.assertEqual(response.status, 404) # #self.node.msg_service('web-front', 'proxy', address=self.WEB_BACK) # #response = self._request('/') #self.assertEqual(response.status, 200) # #for service in services: # self.node.delete_service(service['id']) # #self.assertEqual(len(self.node.services), 1) #Because admin will be there.
class TestNode(TestCase): ports = [1648, 1649] paths = ['nodeA', 'nodeB'] def setUp(self): path = os.path.join(os.path.dirname(__file__), self.paths[0]) if (os.path.exists(path)): shutil.rmtree(path) self.node = LocalNode(path=path, id='nodeA') self._server = eventlet.spawn(self.node.serve, ('127.0.0.1', self.ports[0])) self.node.nanny() def tearDown(self): self.node.terminate() self._server.kill() eventlet.sleep(0) for p in self.paths: try: shutil.rmtree(os.path.join(os.path.dirname(__file__), p)) except: pass def _test_service(self, name, config): self.node.create_service(name, config) service = self.node._get_service(name) self.assertTrue(service.nanny()) self.node.delete_service(name) def test_file_dir(self): name = "test_file_dir" config = { 'type': 'sovereign.service.base.Service', 'src': 'file:tests/src' } self._test_service(name, config) def test_file_tar_gz(self): name = "test_file_tar_gz" config = { 'type': 'sovereign.service.base.Service', 'src': 'file:tests/src.tar.gz' } self._test_service(name, config) def test_rsync(self): name = "test_rsync" config = { 'type': 'sovereign.service.base.Service', 'src': 'rsync:tests/src' } self._test_service(name, config) def test_hg(self): name = "test_hg" config = { 'type': 'sovereign.service.base.Service', 'src': 'hg:http://bitbucket.org/DeadWisdom/jsbundle' } self._test_service(name, config) def test_git(self): name = "test_git" config = { 'type': 'sovereign.service.base.Service', 'src': 'git://github.com/DeadWisdom/Vanilla.git' } self._test_service(name, config) def test_svn(self): name = "test_svn" config = { 'type': 'sovereign.service.base.Service', 'src': 'svn:http://jquery-json.googlecode.com/svn/trunk/' } self._test_service(name, config) def test_http_tar_gz(self): name = "test_http_tar_gz" config = { 'type': 'sovereign.service.base.Service', 'src': 'http://github.com/DeadWisdom/Vanilla/tarball/master' } self._test_service(name, config)