Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
 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()
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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.
Exemplo n.º 6
0
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)