예제 #1
0
def get_or_create_storage_file(node, path, **kwargs):
    """Get or create `OsfStorageGuidFile` record. Used instead of
    `OsfStorageGuidFile#get_or_create` to permit setting additional fields on
    the created object.
    """
    try:
        return OsfStorageGuidFile.find_one(
            Q('node', 'eq', node) & Q('path', 'eq', path))
    except modm_errors.ModularOdmException as error:
        obj = OsfStorageGuidFile(node=node, path=path, **kwargs)
        obj.save()
    return obj
예제 #2
0
def get_or_create_storage_file(node, path, **kwargs):
    """Get or create `OsfStorageGuidFile` record. Used instead of
    `OsfStorageGuidFile#get_or_create` to permit setting additional fields on
    the created object.
    """
    try:
        return OsfStorageGuidFile.find_one(
            Q('node', 'eq', node) &
            Q('path', 'eq', path)
        )
    except modm_errors.ModularOdmException as error:
        obj = OsfStorageGuidFile(node=node, path=path, **kwargs)
        obj.save()
    return obj
예제 #3
0
 def test_migrate(self):
     # Sanity check
     for obj in self.legacy_objs:
         guid_obj = Guid.load(obj._id)
         assert_equal(guid_obj.referent, obj)
     nobjs = OsfStorageGuidFile.find().count()
     main(dry_run=False)
     Guid._clear_caches()
     for obj in self.legacy_objs:
         guid_obj = Guid.load(obj._id)
         assert_not_equal(guid_obj.referent, obj)
         assert_true(isinstance(guid_obj.referent, OsfStorageGuidFile))
         assert_equal(guid_obj.referent.node, self.project)
         assert_equal(guid_obj.referent.path, obj.name)
         assert_equal(guid_obj.referent._id, obj._id)
     assert_equal(OsfStorageGuidFile.find().count(), nobjs + 3)
     # Test idempotence
     main(dry_run=False)
     assert_equal(OsfStorageGuidFile.find().count(), nobjs + 3)
예제 #4
0
 def test_migrate(self):
     # Sanity check
     for obj in self.legacy_objs:
         guid_obj = Guid.load(obj._id)
         assert_equal(guid_obj.referent, obj)
     nobjs = OsfStorageGuidFile.find().count()
     main(dry_run=False)
     Guid._clear_caches()
     for obj in self.legacy_objs:
         guid_obj = Guid.load(obj._id)
         assert_not_equal(guid_obj.referent, obj)
         assert_true(isinstance(guid_obj.referent, OsfStorageGuidFile))
         assert_equal(guid_obj.referent.node, self.project)
         assert_equal(guid_obj.referent.path, obj.name)
         assert_equal(guid_obj.referent._id, obj._id)
     assert_equal(OsfStorageGuidFile.find().count(), nobjs + 3)
     # Test idempotence
     main(dry_run=False)
     assert_equal(OsfStorageGuidFile.find().count(), nobjs + 3)
예제 #5
0
 def clear_guids(self):
     OsfGuidFile.remove()
     OsfStorageGuidFile.remove()
예제 #6
0
 def clear_guids(self):
     OsfGuidFile.remove()
     OsfStorageGuidFile.remove()