コード例 #1
0
 def test_analyzed_data_e2e(self):
     expected = models.ADCMediaItemAnalyzedData(
         bpm=1,
         keySignatureIndex=10,
         uuid="foo",
     )
     actual = archiver.unarchive(archiver.archive(expected))
     self.assertEqual(actual, expected)
コード例 #2
0
 def test_cuepoint_e2e(self):
     expected = models.ADCCuePoint(
         comment="bar",
         number=2,
         time=15.2,
     )
     actual = archiver.unarchive(archiver.archive(expected))
     self.assertEqual(actual, expected)
コード例 #3
0
ファイル: explorer.py プロジェクト: parabolala/djtools
    def save_track(self, track: models.DjayTrack):
        self.validate_track(track)

        uuid = track.title.uuid
        rows = []
        rows.append(
            ('mediaItemUserData', uuid, archiver.archive(track.user_data)))
        rows.append(('mediaItemTitleIDs', uuid, archiver.archive(track.title)))
        if track.analysis is not None:
            rows.append(('mediaItemAnalyzedData', uuid,
                         archiver.archive(track.analysis)))

        query = 'UPDATE database2 set data=? WHERE collection=? AND key=?'
        with sqlite3.connect(self._fname) as conn:
            for row in rows:
                conn.execute(query, (row[2], row[0], row[1]))
        self.load()
コード例 #4
0
 def test_circular_ref(self):
     obj = FooArchive('herp', timestamp(9001), 42,
                      ['strawberries', 'dragonfruit'], {'key': 'value'},
                      False, None)
     obj.recursive = obj
     plist = plistlib.loads(archiver.archive(obj))
     foo_obj = plist['$objects'][1]
     self.assertEqual(plistlib.UID(1), foo_obj['recurse'])
コード例 #5
0
 def test_circular_ref(self):
     foo = FooArchive('herp', timestamp(9001), 42,
                      ['strawberries', 'dragonfruit'], {'key': 'value'},
                      False, None)
     foo.recursive = foo
     plist = bplist.parse(archiver.archive(foo))
     foo_obj = plist['$objects'][1]
     self.assertEqual(uid(1), foo_obj['recurse'])
コード例 #6
0
 def test_title_e2e(self):
     expected = models.ADCMediaItemTitleID(
         title='title',
         artist='artist',
         uuid='UuId',
         internalID='UuId',
         stringRepresentation='String Repr',
         duration=15.3,
     )
     actual = archiver.unarchive(archiver.archive(expected))
     self.assertEqual(actual, expected)
コード例 #7
0
 def test_location_e2e(self):
     expected = models.ADCMediaItemLocation(
         sourceURIs={
             models.NSURL(NSrelative='file:///tmp/foo.wav', NSbase=None),
             models.NSURL(NSrelative='com.apple.iTunes:123456', NSbase=None)
         },
         type=3,
         urlBookmarkData=models.NSMutableData(
             NSdata=b'not a b64-encoded string'),
         uuid='71f9')
     actual = archiver.unarchive(archiver.archive(expected))
     self.assertEqual(actual, expected)
コード例 #8
0
def test_PLRevGeoLocationInfo_2():
    # test PLRevGeoLocationInfo class archive/unarchive
    from bpylist import archiver
    from osxphotos.placeinfo import (
        PlaceInfo,
        PlaceInfo5,
        PLRevGeoLocationInfo,
        CNPostalAddress,
        PLRevGeoMapItem,
        PLRevGeoMapItemAdditionalPlaceInfo,
    )

    place_1 = PlaceInfo5(REVERSE_GEO_LOC_DATA_1)
    plrevgeoloc_1 = place_1._plrevgeoloc
    archived = archiver.archive(plrevgeoloc_1)
    place_1_unarchived = PlaceInfo5(archived)
    assert isinstance(place_1_unarchived, PlaceInfo)
    assert place_1_unarchived._plrevgeoloc == place_1._plrevgeoloc
コード例 #9
0
 def test_userdata_e2e(self):
     expected = models.ADCMediaItemUserData(
         cuePoints=[
             models.ADCCuePoint(comment=None,
                                number=1,
                                time=3.2826459407806396),
             models.ADCCuePoint(comment=None,
                                number=2,
                                time=114.29496765136719),
             models.ADCCuePoint(comment=None,
                                number=3,
                                time=114.83682250976562)
         ],
         startPoint=models.ADCCuePoint(comment=None,
                                       number=0,
                                       time=112.90266418457031),
         uuid='71f9ccc746630c592ceeed39cbc837b2',
         playCount=7,
         energy=15,
         highEQ=10.30,
         midEQ=2.0,
         lowEQ=3.0,
         manualBPM=117.33,
         manualBeatTime=1.01,
         manualKeySignatureIndex=7,
         rating=3,
         # TODO: Populate the fields.
         linkedUserDataUUIDs=None,
         loopRegions=None,
         manualFirstDownBeatIndices=None,
         manualGridStartPoints=None,
         tagUUIDs=None,
         endPoint=None,
     )
     actual = archiver.unarchive(archiver.archive(expected))
     self.assertEqual(actual, expected)
コード例 #10
0
def pyobject_to_selector(s):
    return archiver.archive(s)
コード例 #11
0
def ns_keyed_archiver(obj):
    return archiver.archive(obj)
コード例 #12
0
 def archive(self, obj):
     archived = archiver.archive(obj)
     unarchived = archiver.unarchive(archived)
     self.assertEqual(obj, unarchived)
コード例 #13
0
 def test_unpack_primitive_multiple_refs(self):
     expected = ['a', 'a']
     actual = archiver.unarchive(archiver.archive(['a', 'a']))
     self.assertEqual(actual, expected)
コード例 #14
0
class Person:
    def __init__(self, name, age, house):
        self.name = name
        self.age = age
        self.house = house

    def __eq__(self, other):
        for field in ['name', 'age', 'house']:
            if getattr(self, field) != getattr(other, field):
                return False
        return True

    @staticmethod
    def encode_archive(obj, archive):
        archive.encode('name', obj.name)
        archive.encode('age', obj.age)
        archive.encode('house', obj.house)

    @staticmethod
    def decode_archive(archive):
        name = archive.decode('name')
        age = archive.decode('age')
        house = archive.decode('house')
        return Person(name, age, house)


archiver.update_class_map({'crap.Foo': Person})
obj = Person('herp', '42', 'strawberries')
archiver.archive(obj)