def test_old_and_delete_bin(self): earlier_by_89_days = datetime.utcnow() - timedelta(days = 89) binary_1 = Binary(owner=self.binowner, content_key="", content_type="text/plain/1", last_access=earlier_by_89_days) binary_1.save() binary_1_5 = Binary(owner=self.binowner, content_key="", content_type="text/plain/1.5") binary_1_5.save() earlier_by_91_days = datetime.utcnow() - timedelta(days = 91) binary_2 = Binary(owner=self.binowner, content_key="", content_type="text/plain/2", last_access=earlier_by_91_days) binary_2.save() self.assertEqual(Binary.objects.count(), 3) old_data = prune._older_than_90_days() self.assertEqual(len(old_data), 1) self.assertEqual(old_data[0].content_type, "text/plain/2") prune._delete_old_Binary_objs(old_data) old_data_after = prune._older_than_90_days() self.assertEqual(len(old_data_after), 0)
def POST(bin_owner, data_id, uploaded_file): if uploaded_file.size > MAX_SIZE_IN_BYTES: return const.PREFIX_ERROR + uploaded_file.name + ' is too large', const.CONTENT_TYPE_HTML, const.HTTP_STATUS_400 blob_key = None if data_id: binary = _get_binary(data_id) blob_key = binary.content_key blob_key = put(uploaded_file, blob_key) if blob_key is None: return const.PREFIX_POST + 'blob_key=' + blob_key, const.CONTENT_TYPE_HTML, const.HTTP_STATUS_502 if data_id is None: binary = Binary(owner=bin_owner, content_key=blob_key, content_type=uploaded_file.content_type) binary.save() data_id = binary.id else: binary = _get_binary(data_id) binary.content_key = blob_key binary.save() return const.PREFIX_POST + 'data_id=' + str(data_id), const.CONTENT_TYPE_HTML, const.HTTP_STATUS_200