diff --git a/tests/REST_service/test.py b/tests/REST_service/test.py
new file mode 100644
index 0000000..0957378
--- /dev/null
+++ b/tests/REST_service/test.py
@@ -0,0 +1,172 @@
+# -*- coding: utf-8 -*-
+
+
+import unittest2
+import requests
+import json
+import logging
+import thread
+import time
+
+logging.basicConfig()
+LOG = logging.getLogger(' REST service tests')
+
+class TestSuite(unittest2.TestCase):
+    
+    def setUp(self):
+        self.max_count = 200
+        self.url = 'http://localhost:8082/environments'
+        self.headers = {'X-Auth-Token': '3685674500ff83eb62b5c5d453e0cacd'}
+        self.lock_list = []
+        self.responses = []
+        self.state = 'stop'
+
+    def tearDown(self):
+        self.headers = {}
+    
+    def run_in_parrallel(self, func, parameter):
+        lock = thread.allocate_lock()
+        lock.acquire()
+        self.lock_list.append(lock)
+        thread.start_new_thread(func, (parameter, lock))
+        
+    def wait_threads(self):
+        self.state = 'run'
+        while(any([l.locked() for l in self.lock_list])):
+            pass
+        
+        LOG.critical(self.lock_list)
+
+    def create_environment(self, name, lock):
+        while (self.state == 'stop'):
+            pass
+        
+        body = '{"name": "%s"}' % name
+        response = requests.request('POST',
+                                    self.url,
+                                    headers=self.headers,
+                                    data=body)
+        
+        self.responses.append(response)
+
+        return lock.release()
+
+        
+    def delete_environment(self, id, lock):
+        while (self.state == 'stop'):
+            pass
+
+        id = '/' + id
+
+        response = requests.request('DELETE', self.url+id, headers=self.headers)
+
+        self.responses.append(response)
+
+        return lock.release()
+
+    def test_01_delete_environments(self):
+
+        response = requests.request('GET', self.url, headers=self.headers)
+
+        result = json.loads(response._content)
+        environments = result['environments']
+
+        for env in environments:
+            self.run_in_parrallel(self.delete_environment, env['id'])
+
+        self.wait_threads()
+        
+        for response in self.responses:
+            assert response.status_code is 200
+
+    def test_02_list_environments(self):
+        
+        response = requests.request('GET', self.url, headers=self.headers)
+        
+        result = json.loads(response._content)
+        environments = result['environments']
+        
+        assert len(environments) is 0
+        
+    def test_03_create_environment(self):
+        
+        self.headers.update({'Content-Type': 'application/json'})
+        body = '{"name": "test"}'
+        
+        response = requests.request('POST', self.url, headers=self.headers,
+                                    data=body)
+        
+        environment = json.loads(response._content)
+        
+        assert environment['name'] == 'test'
+    
+    def test_04_delete_environment(self):
+
+        id = None
+
+        response = requests.request('GET', self.url, headers=self.headers)
+
+        result = json.loads(response._content)
+        environments = result['environments']
+
+        for env in environments:
+            if env['name'] == 'test':
+                id = '/' + env['id']
+
+        assert id is not None
+
+        response = requests.request('DELETE', self.url+id, headers=self.headers)
+
+        assert response.status_code is 200
+
+    def test_05_create_environments(self):
+
+        self.headers.update({'Content-Type': 'application/json'})
+
+        for i in range(self.max_count):
+            name = "environment%s" % i
+            self.run_in_parrallel(self.create_environment, name)
+
+        self.wait_threads()
+        
+        for response in self.responses:
+            assert response.status_code is 200            
+            
+    def test_06_list_environments(self):
+
+        response = requests.request('GET', self.url, headers=self.headers)
+
+        result = json.loads(response._content)
+        environments = result['environments']
+
+        assert len(environments) == self.max_count
+
+
+    def test_07_list_environments(self):
+
+        response = requests.request('GET', self.url, headers=self.headers)
+
+        result = json.loads(response._content)
+        environments = result['environments']
+
+        assert len(environments) > 0
+
+    def test_08_list_environments(self):
+
+        response = requests.request('GET', self.url, headers=self.headers)
+
+        result = json.loads(response._content)
+        environments = result['environments']
+
+        for env in environments:
+            assert env.get('id', None) is not None
+            assert env.get('name', None) is not None
+            assert env.get('status', None) is not None
+            assert env.get('updated', None) is not None
+            assert env.get('created', None) is not None
+            assert env.get('tenant_id', None) is not None
+
+
+
+if __name__ == '__main__':
+    unittest2.main()
\ No newline at end of file