Fixes LP Bug#903969 - Image metadata boundary tests

Adds boundary tests for image metadata in Compute API

Changed the indentation to 4 space width.
Added nonexistant tests for image metadata operations

Change-Id: Ife6324f7eb55ef71315a9775993c431849ad2d45
diff --git a/tempest/tests/test_image_metadata.py b/tempest/tests/test_image_metadata.py
index 23f0689..80f5a0a 100644
--- a/tempest/tests/test_image_metadata.py
+++ b/tempest/tests/test_image_metadata.py
@@ -1,6 +1,8 @@
+from nose.plugins.attrib import attr
 from tempest import openstack
 from tempest.common.utils.data_utils import rand_name
 import unittest2 as unittest
+from tempest import exceptions
 
 
 class ImagesMetadataTest(unittest.TestCase):
@@ -90,3 +92,76 @@
         resp, resp_metadata = self.client.list_image_metadata(self.image_id)
         expected = {'key2': 'value2'}
         self.assertEqual(expected, resp_metadata)
+
+    @attr(type='negative')
+    def test_list_nonexistant_image_metadata(self):
+        """Negative test: List on nonexistant image
+        metadata should not happen"""
+        try:
+            resp, resp_metadata = self.client.list_image_metadata(999)
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('List on nonexistant image metadata should'
+                      'not happen')
+
+    @attr(type='negative')
+    def test_update_nonexistant_image_metadata(self):
+        """Negative test:An update should not happen for a nonexistant image"""
+        meta = {'key1': 'alt1', 'key2': 'alt2'}
+        try:
+            resp, metadata = self.client.update_image_metadata(999, meta)
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('An update shouldnt happen for nonexistant image')
+
+    @attr(type='negative')
+    def test_get_nonexistant_image_metadata_item(self):
+        """Negative test: Get on nonexistant image should not happen"""
+        try:
+            resp, metadata = self.client.get_image_metadata_item(999,
+                                                                    'key2')
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('Get on nonexistant image should not happen')
+
+    @attr(type='negative')
+    def test_set_nonexistant_image_metadata(self):
+        """Negative test: Metadata should not be set to a nonexistant image"""
+        meta = {'key1': 'alt1', 'key2': 'alt2'}
+        try:
+            resp, meta = self.client.set_image_metadata(999, meta)
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('Metadata should not be set to a nonexistant image')
+
+    @attr(type='negative')
+    def test_set_nonexistant_image_metadata_item(self):
+        """Negative test: Metadata item should not be set to a
+        nonexistant image"""
+        meta = {'key1': 'alt'}
+        try:
+            resp, body = self.client.set_image_metadata_item(999,
+                                                            'key1', meta)
+            resp, metadata = self.client.list_image_metadata(999)
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('Metadata item should not be set to a nonexistant image')
+
+    @attr(type='negative')
+    def test_delete_nonexistant_image_metadata_item(self):
+        """Negative test: Shouldnt be able to delete metadata
+                          item from nonexistant image"""
+        try:
+            resp, body = self.client.delete_image_metadata_item(999,
+                                                                 'key1')
+            resp, metadata = self.client.list_image_metadata(999)
+        except exceptions.NotFound:
+            pass
+        else:
+            self.fail('Should not be able to delete metadata item from a'
+                      'nonexistant image')