def test_change_embargo_date(self): assert_false(self.registration.embargo) assert_true(self.registration.is_public) # Note: Date comparisons accept a difference up to a day because embargoes start at midnight # Create an embargo from a registration with none change_embargo_date(self.registration, self.user, self.date_valid) assert_almost_equal(self.registration.embargo.end_date, self.date_valid, delta=datetime.timedelta(days=1)) # Make sure once embargo is set, registration is made private self.registration.reload() assert_false(self.registration.is_public) # Update an embargo end date change_embargo_date(self.registration, self.user, self.date_valid2) assert_almost_equal(self.registration.embargo.end_date, self.date_valid2, delta=datetime.timedelta(days=1)) # Test invalid dates with assert_raises(ValidationError): change_embargo_date(self.registration, self.user, self.date_too_late) with assert_raises(ValidationError): change_embargo_date(self.registration, self.user, self.date_too_soon) # Test that checks user has permission with assert_raises( PermissionDenied): change_embargo_date(self.registration, UserFactory(), self.date_valid) assert_almost_equal(self.registration.embargo.end_date, self.date_valid2, delta=datetime.timedelta(days=1))
def test_change_embargo_date(self): assert_false(self.registration.embargo) assert_true(self.registration.is_public) # Note: Date comparisons accept a difference up to a day because embargoes start at midnight # Create an embargo from a registration with none change_embargo_date(self.registration, self.user, self.date_valid) assert_almost_equal(self.registration.embargo.end_date, self.date_valid, delta=datetime.timedelta(days=1)) # Make sure once embargo is set, registration is made private self.registration.reload() assert_false(self.registration.is_public) # Update an embargo end date change_embargo_date(self.registration, self.user, self.date_valid2) assert_almost_equal(self.registration.embargo.end_date, self.date_valid2, delta=datetime.timedelta(days=1)) # Test invalid dates with assert_raises(ValidationError): change_embargo_date(self.registration, self.user, self.date_too_late) with assert_raises(ValidationError): change_embargo_date(self.registration, self.user, self.date_too_soon) # Test that checks user has permission with assert_raises(PermissionDenied): change_embargo_date(self.registration, UserFactory(), self.date_valid) assert_almost_equal(self.registration.embargo.end_date, self.date_valid2, delta=datetime.timedelta(days=1))
def post(self, request, *args, **kwargs): validation_only = (request.POST.get('validation_only', False) == 'True') end_date = request.POST.get('date') user = request.user registration = self.get_object() try: end_date = pytz.utc.localize(datetime.strptime(end_date, '%m/%d/%Y')) except ValueError: return HttpResponse('Please enter a valid date.', status=400) try: if validation_only: validate_embargo_date(registration, user, end_date) else: change_embargo_date(registration, user, end_date) except ValidationError as e: return HttpResponse(e, status=409) except PermissionDenied as e: return HttpResponse(e, status=403) return redirect(reverse_node(self.kwargs.get('guid')))
def post(self, request, *args, **kwargs): validation_only = (request.POST.get('validation_only', False) == 'True') end_date = request.POST.get('date') user = request.user registration = self.get_object() try: end_date = pytz.utc.localize(datetime.strptime(end_date, '%m/%d/%Y')) except ValueError: return HttpResponse('Please enter a valid date.', status=400) try: if validation_only: validate_embargo_date(registration, user, end_date) else: change_embargo_date(registration, user, end_date) except ValidationError as e: return HttpResponse(e, status=409) except PermissionDenied as e: return HttpResponse(e, status=403) return redirect(reverse_node(self.kwargs.get('guid')))