Ejemplo n.º 1
0
    def test_generate_thumbnail_name_dataset(self):

        dataset_name = thumbnails._generate_thumbnail_name(
            Dataset.objects.first())
        self.assertIsNotNone(
            re.match(f"dataset-{self.re_uuid}-thumb.png", dataset_name, re.I),
            "Dataset name should meet a provided pattern")
Ejemplo n.º 2
0
    def test_generate_thumbnail_name_map(self, uuid_mock, layers_mock):

        layers_mock.return_value = [MapLayer()]
        uuid_mock.return_value = str(uuid.uuid4())

        map_name = thumbnails._generate_thumbnail_name(Map.objects.first())
        self.assertIsNotNone(
            re.match(f"map-{self.re_uuid}-thumb.png", map_name, re.I), "Map name should meet a provided pattern"
        )
Ejemplo n.º 3
0
 def test_generate_thumbnail_name_document(self):
     doc = resource_manager.create(
         None,
         resource_type=Document,
         defaults=dict(
             doc_url="http://geonode.org/map.pdf",
             owner=get_user_model().objects.get(username='******'),
             title="Test doc",
         ))
     name = thumbnails._generate_thumbnail_name(doc)
     self.assertIsNotNone(
         re.match(f"document-{self.re_uuid}-thumb.png", name, re.I), "Document name should meet a provided pattern"
     )
Ejemplo n.º 4
0
    def test_generate_thumbnail_name_geoapp(self):

        geo_app = resource_manager.create(
            None,
            resource_type=GeoApp,
            defaults=dict(
                title="Test GeoApp",
                owner=get_user_model().objects.get(username='******'),
                blob='{"test_data": {"test": ["test_1","test_2","test_3"]}}'
            )
        )
        name = thumbnails._generate_thumbnail_name(geo_app)
        self.assertIsNotNone(
            re.match(f"geoapp-{self.re_uuid}-thumb.png", name, re.I), "GeoApp name should meet a provided pattern"
        )
Ejemplo n.º 5
0
def update_thumbnail_urls_and_delete_curated_thumbs_folder(
        apps, schema_editor):
    query = '''
    SELECT base_resourcebase.id, base_curatedthumbnail.img FROM base_resourcebase
    INNER JOIN base_curatedthumbnail
    ON base_resourcebase.id=base_curatedthumbnail.resource_id;
    '''
    c = connection.cursor()
    c.execute(query)
    results = c.fetchall()
    for result in results:
        resource_id, image = result
        resource = ResourceBase.objects.filter(id=resource_id).first()
        try:
            bytes_file = storage_manager.open(image).read()
        except Exception:
            bytes_file = None

        if resource and bytes_file:
            filename = _generate_thumbnail_name(resource.get_real_instance())
            resource.save_thumbnail(filename, bytes_file)
Ejemplo n.º 6
0
    def test_generate_thumbnail_name_map_empty(self, layers_mock):
        layers_mock.return_value = []

        map_name = thumbnails._generate_thumbnail_name(Map.objects.first())
        self.assertIsNone(map_name, "Map name for maps without layers should return None.")
Ejemplo n.º 7
0
    def test_generate_thumbnail_name_layer(self):

        layer_name = thumbnails._generate_thumbnail_name(Layer.objects.first())
        self.assertIsNotNone(
            re.match(f"layer-{self.re_uuid}-thumb.png", layer_name, re.I),
            "Layer name should meet a provided pattern")
Ejemplo n.º 8
0
 def test_get_unique_upload_path(self):
     dataset = Dataset.objects.first()
     thumbnail_name = thumbnails._generate_thumbnail_name(dataset)
     upload_path = utils.thumb_path(thumbnail_name)
     new_upload_path = utils.get_unique_upload_path(thumbnail_name)
     self.assertNotEqual(upload_path, new_upload_path)
Ejemplo n.º 9
0
        return False

    def set_thumbnail(self,
                      uuid: str,
                      /,
                      instance: ResourceBase = None,
                      overwrite: bool = True,
                      check_bbox: bool = True,
                      thumbnail=None) -> bool:
        _resource = instance or ResourceManager._get_instance(uuid)
        if _resource:
            _resource.set_processing_state(enumerations.STATE_RUNNING)
            try:
                with transaction.atomic():
                    if thumbnail:
                        file_name = _generate_thumbnail_name(
                            _resource.get_real_instance())
                        _resource.save_thumbnail(file_name, thumbnail)
                    else:
                        if instance and instance.files and isinstance(
                                instance.get_real_instance(), Document):
                            if overwrite or instance.thumbnail_url == static(
                                    thumb_utils.MISSING_THUMB):
                                create_document_thumbnail.apply(
                                    (instance.id, ))
                        self._concrete_resource_manager.set_thumbnail(
                            uuid,
                            instance=_resource,
                            overwrite=overwrite,
                            check_bbox=check_bbox)
                _resource.set_processing_state(enumerations.STATE_PROCESSED)
                return True