# distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
-# limitations under the License.
\ No newline at end of file
+# limitations under the License.
+from django.test import TestCase, Client
+from rest_framework import status
+
+from lcm.pub.database.models import JobModel, JobStatusModel
+
+
+class JobsViewTest(TestCase):
+    def setUp(self):
+        self.job_id = 'test_job_id'
+        self.client = Client()
+
+    def tearDown(self):
+        JobModel.objects.all().delete()
+
+    def test_job(self):
+        JobModel(jobid=self.job_id, jobtype='VNF', jobaction='INST', resid='1').save()
+        JobStatusModel(indexid=1, jobid=self.job_id, status='inst', progress=20, descp='inst').save()
+        response = self.client.get("/openoapi/vnflcm/v1/jobs/%s" % self.job_id)
+        self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
\ No newline at end of file
 
             return Response(data={'error': '%s' % e.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
         except Exception:
             logger.error(traceback.format_exc())
-            return Response(data='unexpected exception', status=status.HTTP_500_INTERNAL_SERVER_ERROR)
+            return Response(data={'error': 'unexpected exception'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
         rsp = {"vnfInstanceId": nf_inst_id}
         return Response(data=rsp, status=status.HTTP_201_CREATED)
 
 
 urlpatterns = [
     url(r'^', include('lcm.samples.urls')),
     url(r'^', include('lcm.nf.vnfs.urls')),
+    url(r'^', include('lcm.jobs.urls')),
 ]
 
 # regist to MSB when startup