Пример #1
0
 def test_metadata_extraction(self):
     from os import path
     import datetime
     from fractions import Fraction
     try:
         from tardis.tardis_portal.filters.exif import EXIFFilter
     except:
         raise SkipTest()
     f = EXIFFilter("EXIF", "http://exif.schema")
     filename = path.join(path.abspath(path.dirname(__file__)), 'test.jpg')
     metadata = {
         'Exif.Thumbnail.ResolutionUnit': 2,
         'Exif.Photo.ColorSpace': 65535,
         'Exif.Image.Orientation': 1,
         'Exif.Photo.PixelYDimension': 768L,
         'Exif.Image.XResolution': Fraction(72, 1),
         'Exif.Photo.PixelXDimension': 978L,
         'Exif.Image.ExifTag': 164L,
         'Exif.Thumbnail.Compression': 6,
         'Exif.Image.DateTime': datetime.datetime(2005, 7, 8, 19, 17, 44),
         'Exif.Image.YResolution': Fraction(72, 1),
         'Exif.Image.ResolutionUnit': 2,
         'Exif.Thumbnail.YResolution': Fraction(72, 1),
         'Exif.Thumbnail.XResolution': Fraction(72, 1),
         'Exif.Image.Software': 'Adobe Photoshop Elements 2.0'
     }
     self.assertEqual(f.getExif(filename), metadata)
Пример #2
0
    def test_save_metadata(self):
        from os import path
        try:
            from tardis.tardis_portal.filters.exif import EXIFFilter
        except:
            raise SkipTest()

        from tardis.tardis_portal import models

        filename = path.join(path.abspath(path.dirname(__file__)), 'test.jpg')

        exp = models.Experiment(title='test exp1',
                                institution_name='monash',
                                approved=True,
                                created_by=self.user,
                                public=False)
        exp.save()

        dataset = models.Dataset(description="dataset description...",
                                 experiment=exp)
        dataset.save()
        df_file = models.Dataset_File(dataset=dataset,
                                      filename='file1.txt',
                                      url=filename,
                                      protocol='')
        df_file.save()

        f = EXIFFilter("EXIF", "http://exif.schema")

        metadata = f.getExif(filename)
        parameters = f.getParamaters(f.getSchema(), metadata)
        ps = f.saveExifMetadata(df_file, f.getSchema(), metadata)
        self.assertEqual(len(ps.datafileparameter_set.all()), 14)
Пример #3
0
    def test_create_schema(self):
        try:
            from tardis.tardis_portal.filters.exif import EXIFFilter
        except:
            raise SkipTest()

        f = EXIFFilter("EXIF", "http://exif.schema")
        self.assertEqual(str(f.getSchema()),
                         "Datafile schema: http://exif.schema")
Пример #4
0
    def test_update_schema(self):
        from os import path
        try:
            from tardis.tardis_portal.filters.exif import EXIFFilter
        except:
            raise SkipTest()

        f = EXIFFilter("EXIF", "http://exif.schema")
        filename = path.join(path.abspath(path.dirname(__file__)), 'test.jpg')
        self.assertEqual(
            len(f.getParamaters(f.getSchema(), f.getExif(filename))), 14)
Пример #5
0
    def test_parameter_filters(self):
        from os import path
        import datetime
        from fractions import Fraction
        try:
            from tardis.tardis_portal.filters.exif import EXIFFilter
        except:
            raise SkipTest()

        metadata = {
            'Exif.Thumbnail.ResolutionUnit': 2,
            'Exif.Photo.ColorSpace': 65535,
            'Exif.Image.Orientation': 1,
            'Exif.Photo.PixelYDimension': 768L,
            'Exif.Image.XResolution': Fraction(72, 1),
            'Exif.Photo.PixelXDimension': 978L,
            'Exif.Image.ExifTag': 164L,
            'Exif.Thumbnail.Compression': 6,
            'Exif.Image.DateTime': datetime.datetime(2005, 7, 8, 19, 17, 44),
            'Exif.Image.YResolution': Fraction(72, 1),
            'Exif.Image.ResolutionUnit': 2,
            'Exif.Thumbnail.YResolution': Fraction(72, 1),
            'Exif.Thumbnail.XResolution': Fraction(72, 1),
            'Exif.Image.Software': 'Adobe Photoshop Elements 2.0'
        }

        f = EXIFFilter(
            "EXIF",
            "http://exif.schema",
            tagsToFind=["Exif.Photo.ColorSpace", 'Exif.Image.Orientation'])
        s = f.getSchema()
        self.assertEqual(len(f.getParamaters(s, metadata)), 2)

        f = EXIFFilter(
            "EXIF",
            "http://exif.schema",
            tagsToExclude=["Exif.Photo.ColorSpace", 'Exif.Image.Orientation'])
        s = f.getSchema()
        self.assertEqual(len(f.getParamaters(s, metadata)), 12)