Ejemplo n.º 1
0
Archivo: tests.py Proyecto: crs4/ACTIVE
class IndexTest(TestCase):
    """
    Class used to define all tests related to objects indexing.
    """
    def setUp(self):
        """
        Setup the database and index some objects.
        """
        # create a new user
        user  = User.objects.create_user('root', '*****@*****.**', 'root')
        user.is_superuser = True
        user.save()

        # create the search manager
        self.sm = ESManager()
        
        # create and index some items
        for i in range(10):
            item = Item()
            item.type = 'image'
            item.filename = 'test_' + str(i)
            item.mime_type = 'image/png'
            item.owner = user
            item.save()

            serializer = ItemSerializer(item)
            self.sm.create({'doc_type' : 'items', 'params' : serializer.data })

    def tearDown(self):
        """
        Remove the objects previuosly indexed.
        """
        for i in range(11):
            if self.sm.exists({'doc_type' : 'items', 'params': { 'id' : i+1 }})['results']:
                self.sm.delete({'doc_type': 'items', 'params': { 'id' : i+1 }})

    def test_exists(self):
        """
        Test used to check if an object has already been indexed.
        """
        result = self.sm.exists({'doc_type' : 'items', 'params': { 'id' : 1 }})
        self.assertEqual(result['results'], True)

    def test_not_exists(self):
        """
        Test used to check if not indexed objects are detected.
        """
        result = self.sm.exists({'doc_type' : 'items', 'params': { 'id' : 0 }})
        self.assertEqual(result['results'], False)

    def test_create(self):
        """
        Method used to index a new object.
        """
        item = Item()
        item.type = 'image'
        item.filename = 'test_'
        item.mime_type = 'image/png'
        item.owner = User.objects.all()[0]
        item.save()

        serializer = ItemSerializer(item)
        result = self.sm.create({'doc_type' : 'items', 'params' : serializer.data })
        self.assertEqual(result['created'], True)
        
    def test_update(self):
        """
        Method used to update the fields of an existing object.
        """
        data = {'uploaded_at': '2015-09-14T17:03:21.780176Z', 'description': 'Custom file', 
                'state': 'STORED, ANALYZED', 'visibility': False, 'filename': 'test_1', 
                'published_at': None, 'filesize': '', 'owner': 1,  'type': 'image',
                'id': 1, 'mime_type': 'image/png'}
        result = self.sm.update({'doc_type' : 'items', 'params': data})
        self.assertNotEqual(result['_version'], 1)

    def test_delete(self):
        """
        Method used to remove indexed data of an existing object.
        """
        result = self.sm.delete({'doc_type' : 'items', 'params': { 'id' : 1 }})
        self.assertNotEqual(result['results']['_version'], 1)