예제 #1
0
 def setUp(self):
     self.client = Client("user", "public_key", "localhost", 9295, False)
예제 #2
0
 def setUp(self):
     self.client = Client("user", "public_key", "localhost", 9295, False)
예제 #3
0
class ClientTestCase(unittest.TestCase):

    def setUp(self):
        self.client = Client("user", "public_key", "localhost", 9295, False)

    def tearDown(self):
        self.client.close()

    def test_successful_login(self):
        resp = {"/login/api": '{"ok":true, "api_key":"private-key"}'}
        self.client.connection = mock.connection(resp)
        response = self.client.login()
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('private-key', response['api_key'])

    def test_failed_login(self):
        resp = {"/login/api": '{"error":"login", "reason":"test"}'}
        self.client.connection = mock.connection(resp)
        response = self.client.login()
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['error'])
        self.assertEqual('login', response['error'])
        self.assertEqual('test', response['reason'])

    def test_successful_execute(self):
        resp = {"/api/1/curl/execute": '{"ok":true, "status":"queued", "region":"california", "job_id":"a123"}'}
        self.client.connection = mock.connection(resp)
        data = {'steps': [{'url': 'http://example.com'}]}
        response = self.client.execute(data)
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('a123', response['job_id'])
        self.assertEqual('california', response['region'])
        self.assertEqual('queued', response['status'])
        body = self.client.connection.body
        self.assertEqual('{"steps": [{"url": "http://example.com"}]}', body)

    def test_job_status(self):
        resp = {"/api/1/jobs/c123/status": '{"_id":"c123", "ok":true,\
            "result":{"region":"california","timeline":[\
            {"duration":1,"total":10,"executed":8,"errors":1,\
            "timeouts":1,"volume":10}, {"duration":2,"total":100,\
            "executed":80,"errors":10,"timeouts":10,"volume":100}]}}'}
        self.client.connection = mock.connection(resp)
        response = self.client.job_status('c123')
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('c123', response['_id'])

    def test_abort_job(self):
        resp = {"/api/1/jobs/c123/abort": '{"ok":true}'}
        self.client.connection = mock.connection(resp)
        response = self.client.abort_job('c123')
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        path = self.client.connection.path
        self.assertEqual('/api/1/jobs/c123/abort', path)

    def test_parse(self):
        resp = {"/api/1/parse": '{"ok":true,"command":{"steps":[{"url":"http://example.com"}]}}'}
        self.client.connection = mock.connection(resp)
        response = self.client.parse({"command": "http://example.com"})
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        path = self.client.connection.path
        self.assertEqual('/api/1/parse', path)
예제 #4
0
class  ClientTestCase(unittest.TestCase):
    
    def setUp(self):
        self.client = Client("user", "public_key", "localhost", 9295, False)

    def tearDown(self):
        self.client.close()

    def test_successful_login(self):
        resp = {"/login/api":'{"ok":true, "api_key":"private-key"}'}
        self.client.connection = mock.connection(resp)
        response = self.client.login()
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('private-key', response['api_key'])
    
    def test_failed_login(self):
        resp = {"/login/api":'{"error":"login", "reason":"test"}'}
        self.client.connection = mock.connection(resp)
        response = self.client.login()
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['error'])
        self.assertEqual('login', response['error'])
        self.assertEqual('test', response['reason'])
        
    def test_successful_execute(self):
        resp = {"/api/1/curl/execute":'{"ok":true, "status":"queued", \
            "region":"california", "job_id":"a123"}'}
        self.client.connection = mock.connection(resp)
        data = {'steps': [{'url':'http://example.com'}] }
        response = self.client.execute(data)
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('a123', response['job_id'])
        self.assertEqual('california', response['region'])
        self.assertEqual('queued', response['status'])
        body = self.client.connection.body
        self.assertEqual('{"steps": [{"url": "http://example.com"}]}', body)
    
    def test_job_status(self):
        resp = {"/api/1/jobs/c123/status":'{"_id":"c123", "ok":true,\
            "result":{"region":"california","timeline":[\
            {"duration":1,"total":10,"executed":8,"errors":1,\
            "timeouts":1,"volume":10}, {"duration":2,"total":100,\
            "executed":80,"errors":10,"timeouts":10,"volume":100}]}}'}
        self.client.connection = mock.connection(resp)
        response = self.client.job_status('c123')
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        self.assertEqual('c123', response['_id'])

    def test_abort_job(self):
        resp = {"/api/1/jobs/c123/abort":'{"ok":true}'}
        self.client.connection = mock.connection(resp)
        response = self.client.abort_job('c123')
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        path = self.client.connection.path
        self.assertEqual('/api/1/jobs/c123/abort', path)
    
    def test_parse(self):
        resp = {"/api/1/parse":'{"ok":true,\
            "command":{"steps":[{"url":"http://example.com"}]}}'}
        self.client.connection = mock.connection(resp)
        response = self.client.parse({"command": "http://example.com"})
        self.assertIsNotNone(response)
        self.assertIsNotNone(response['ok'])
        self.assertTrue(response['ok'])
        path = self.client.connection.path
        self.assertEqual('/api/1/parse', path)