Example #1
0
 def test__initiate_embargo_with_save_does_save_embargo(self):
     initial_count = Embargo.find().count()
     self.registration._initiate_embargo(
         self.user,
         self.valid_embargo_end_date,
         for_existing_registration=True,
     )
     assert_equal(Embargo.find().count(), initial_count + 1)
Example #2
0
 def test__initiate_embargo_with_save_does_save_embargo(self):
     initial_count = Embargo.find().count()
     self.registration._initiate_embargo(
         self.user,
         self.valid_embargo_end_date,
         for_existing_registration=True,
     )
     assert_equal(Embargo.find().count(), initial_count + 1)
Example #3
0
def save_bare_embargos(page_size=10000):
    print 'Starting {}...'.format(sys._getframe().f_code.co_name)
    embargo_key_blacklist = ['__backrefs', '_version', ]

    start = datetime.now()
    count = 0
    total = MODMEmbargo.find().count()

    while count < total:
        with transaction.atomic():
            embargos = []
            for modm_embargo in MODMEmbargo.find().sort('-_id')[count:count +
                                                                page_size]:
                embargo_fields = modm_embargo.to_storage()
                cleaned_embargo_fields = {key: embargo_fields[key]
                                          for key in embargo_fields
                                          if key not in (embargo_key_blacklist)
                                          }
                for k, v in cleaned_embargo_fields.iteritems():
                    if isinstance(v, datetime):
                        cleaned_embargo_fields[k] = pytz.utc.localize(v)

                try:
                    initiated_by_id = modm_to_django[cleaned_embargo_fields[
                        'initiated_by']]
                except KeyError:
                    print 'Couldn\'t find user with guid {}'.format()
                else:
                    cleaned_embargo_fields['initiated_by_id'] = initiated_by_id
                    del cleaned_embargo_fields['initiated_by']

                embargos.append(Embargo(**cleaned_embargo_fields))
                count += 1
                if count % page_size == 0 or count == total:
                    then = datetime.now()
                    print 'Saving embargos {} through {}...'.format(
                        count - page_size, count)
                    woot = Embargo.objects.bulk_create(embargos)
                    for wit in woot:
                        modm_to_django[wit.guid] = wit.pk
                    now = datetime.now()
                    print 'Done with {} embargos in {} seconds...'.format(
                        len(woot), (now - then).total_seconds())
                    embargos = None
                    woot = None
                    guid = None
                    embargo_fields = None
                    cleaned_embargo_fields = None
                    trash = gc.collect()
                    print 'Took out {} trashes'.format(trash)
    print 'Modm embargos: {}'.format(total)
    print 'django embargos: {}'.format(Embargo.objects.count())
    print 'Done with {} in {} seconds...'.format(
        sys._getframe().f_code.co_name,
        (datetime.now() - start).total_seconds())
Example #4
0
 def test_embargo_initiator_has_backref(self):
     self.registration.embargo_registration(self.user,
                                            self.valid_embargo_end_date)
     self.registration.save()
     self.registration.reload()
     assert_equal(len(self.user.embargo__embargoed),
                  Embargo.find(Q('initiated_by', 'eq', self.user)).count())
Example #5
0
 def test_embargo_initiator_has_backref(self):
     self.registration.embargo_registration(
         self.user,
         self.valid_embargo_end_date
     )
     self.registration.save()
     self.registration.reload()
     assert_equal(len(self.user.embargo__embargoed),
         Embargo.find(Q('initiated_by', 'eq', self.user)).count())