Exemplo n.º 1
0
 def test_bulk_delete_temporary_metadata(self):
     exp = datetime.utcnow() + timedelta(seconds=30)
     meta = self.db.put(BytesIO(b"content"), meta=new_meta(expires_on=exp))
     self.db.bulk_delete(metas=[meta])
     with self.assertRaises(BlobMeta.DoesNotExist):
         get_meta(meta)
     with self.assertRaises(DeletedBlobMeta.DoesNotExist):
         get_meta(meta, deleted=True)
Exemplo n.º 2
0
 def test_bulk_delete_permanent_metadata(self):
     meta = self.db.put(BytesIO(b"content"), meta=new_meta())
     now = datetime.utcnow()
     with patch('corehq.blobs.metadata._utcnow', return_value=now):
         self.db.bulk_delete(metas=[meta])
         with self.assertRaises(BlobMeta.DoesNotExist):
             get_meta(meta)
         deleted = get_meta(meta, deleted=True)
         self.assertEqual(deleted.deleted_on, now)
Exemplo n.º 3
0
 def test_delete_permanent_metadata(self):
     early = datetime.utcnow() - timedelta(minutes=5)
     meta = self.db.put(BytesIO(b"content"), meta=new_meta(created_on=early))
     self.db.delete(key=meta.key)
     with self.assertRaises(BlobMeta.DoesNotExist):
         get_meta(meta)
     deleted = get_meta(meta, deleted=True)
     self.assertFalse(deleted.deleted_on is None)
     self.assertGreaterEqual(deleted.deleted_on, meta.created_on)
     self.assertLessEqual(deleted.deleted_on, datetime.utcnow())
Exemplo n.º 4
0
 def test_bulk_delete(self):
     metas = []
     for name in "abc":
         meta = new_meta(parent_id="parent", name=name)
         meta.content_length = 0
         metas.append(meta)
         self.db.metadb.put(meta)
     a, b, c = metas
     self.db.metadb.bulk_delete([a, b])
     for meta in [a, b]:
         with self.assertRaises(BlobMeta.DoesNotExist):
             get_meta(meta)
     get_meta(c)  # should not have been deleted
Exemplo n.º 5
0
 def test_bulk_delete(self):
     metas = []
     for name in "abc":
         meta = new_meta(parent_id="parent", name=name)
         meta.content_length = 0
         metas.append(meta)
         self.db.metadb.put(meta)
     a, b, c = metas
     self.db.metadb.bulk_delete([a, b])
     for meta in [a, b]:
         with self.assertRaises(BlobMeta.DoesNotExist):
             get_meta(meta)
     get_meta(c)  # should not have been deleted
Exemplo n.º 6
0
 def test_save_on_put(self):
     meta = new_meta()
     self.assertEqual(meta.id, None)
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertTrue(meta.id)
     saved = get_meta(meta)
     self.assertTrue(saved is not meta)
     self.assertEqual(saved.key, meta.key)
Exemplo n.º 7
0
 def test_save_on_put(self):
     meta = new_meta()
     self.assertEqual(meta.id, None)
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertTrue(meta.id)
     saved = get_meta(meta)
     self.assertTrue(saved is not meta)
     self.assertEqual(saved.key, meta.key)
Exemplo n.º 8
0
 def test_save_empty_properties(self):
     meta = new_meta()
     self.assertEqual(meta.properties, {})
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertEqual(get_meta(meta).properties, {})
     query = BlobMeta.objects.partitioned_query(meta.parent_id)
     results = query.filter(id=meta.id).values_list('id', 'properties')
     self.assertEqual(list(results), [(meta.id, None)])
Exemplo n.º 9
0
 def test_save_empty_properties(self):
     meta = new_meta()
     self.assertEqual(meta.properties, {})
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertEqual(get_meta(meta).properties, {})
     dbname = get_db_alias_for_partitioned_doc(meta.parent_id)
     with connections[dbname].cursor() as cursor:
         cursor.execute(
             "SELECT id, properties FROM blobs_blobmeta WHERE id = %s",
             [meta.id],
         )
         self.assertEqual(cursor.fetchall(), [(meta.id, None)])
Exemplo n.º 10
0
 def test_save_empty_properties(self):
     meta = new_meta()
     self.assertEqual(meta.properties, {})
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertEqual(get_meta(meta).properties, {})
     dbname = get_db_alias_for_partitioned_doc(meta.parent_id)
     with connections[dbname].cursor() as cursor:
         cursor.execute(
             "SELECT id, properties FROM blobs_blobmeta WHERE id = %s",
             [meta.id],
         )
         self.assertEqual(cursor.fetchall(), [(meta.id, None)])
Exemplo n.º 11
0
 def test_delete(self):
     meta = new_meta()
     self.db.put(BytesIO(b"content"), meta=meta)
     self.db.delete(key=meta.key)
     with self.assertRaises(BlobMeta.DoesNotExist):
         get_meta(meta)
Exemplo n.º 12
0
 def test_save_properties(self):
     meta = new_meta(properties={"mood": "Vangelis"})
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertEqual(get_meta(meta).properties, {"mood": "Vangelis"})
Exemplo n.º 13
0
 def test_delete(self):
     meta = new_meta()
     self.db.put(BytesIO(b"content"), meta=meta)
     self.db.delete(key=meta.key)
     with self.assertRaises(BlobMeta.DoesNotExist):
         get_meta(meta)
Exemplo n.º 14
0
 def test_save_properties(self):
     meta = new_meta(properties={"mood": "Vangelis"})
     self.db.put(BytesIO(b"content"), meta=meta)
     self.assertEqual(get_meta(meta).properties, {"mood": "Vangelis"})