def save_data_products(self, observation_record, product_id=None, reduced=True): from tom_dataproducts.models import DataProduct from tom_dataproducts.utils import create_image_dataproduct final_products = [] products = self.data_products(observation_record.observation_id, product_id) logger.debug(f'Saving {len(products)} files') for product in products: if reduced and ('e91' not in product['filename']): continue dp, created = DataProduct.objects.get_or_create( product_id=product['id'], target=observation_record.target, observation_record=observation_record, extra_data=json.dumps(product['extra'])) if created: product_data = requests.get(product['url']).content dfile = ContentFile(product_data) dp.data.save(product['filename'], dfile) dp.data_product_type = self.find_data_product_type( dp.data.name) dp.save() logger.debug(f"Saved {product['filename']}") # dp.get_preview() if AUTO_THUMBNAILS: create_image_dataproduct(dp) final_products.append(dp) return final_products
def test_create_jpeg(self, dp_mock): products = DataProduct.objects.filter(data_product_type='image_file') self.assertEqual(products.count(), 0) resp = create_image_dataproduct(self.data_product) self.assertTrue(resp) products = DataProduct.objects.filter(data_product_type='image_file') self.assertEqual(products.count(), 1)
def save_data_products(self, observation_record, product_id=None): from tom_dataproducts.models import DataProduct from tom_dataproducts.utils import create_image_dataproduct final_products = [] products = self.data_products(observation_record.observation_id, product_id) for product in products: dp, created = DataProduct.objects.get_or_create( product_id=product['id'], target=observation_record.target, observation_record=observation_record, ) if created: product_data = requests.get(product['url']).content dfile = ContentFile(product_data) dp.data.save(product['filename'], dfile) dp.save() dp.get_preview() if AUTO_THUMBNAILS: create_image_dataproduct(dp) final_products.append(dp) return final_products