def test_soap_job_functions():
    call_command('schedule_synchronization_job', '--set-defaults')

    default_jobs = SyncCommand().default_jobs

    assert SynchronizationJob.objects.count() == len(default_jobs)

    call_command('schedule_synchronization_job', default_jobs[0][0],
                 '--remove')

    assert SynchronizationJob.objects.count() == len(default_jobs) - 1

    call_command('schedule_synchronization_job', '--list')

    job = SynchronizationJob.objects.first()
    job.last_synchronization = "2011-01-01T00:00:00Z"
    job.save()

    call_command('schedule_synchronization_job', job.talentmap_model,
                 '--reset')

    job.refresh_from_db()
    assert job.last_synchronization == ensure_date("1975-01-01T00:00:00Z")

    job.last_synchronization = "2011-01-01T00:00:00Z"
    job.save()

    call_command('schedule_synchronization_job', '--reset-all')

    job.refresh_from_db()
    assert job.last_synchronization == ensure_date("1975-01-01T00:00:00Z")
Пример #2
0
def test_ensure_date():
    # Try to get a permission without it existing
    with pytest.raises(Exception, match="Parameter must be a date object or string"):
        ensure_date(201225123)

    date = parser.parse("1000-01-01").astimezone(datetime.timezone.utc)

    # Now check it
    assert ensure_date("1000-01-01") == date
    assert ensure_date(date) == date
Пример #3
0
    def validate(self, data):
        datasource = self.initial_data

        # Convert incoming string dates into date objects for validation
        for date_key in [
                "cycle_end_date", "cycle_deadline_date", "cycle_start_date"
        ]:
            date = datasource.get(date_key, None)
            if date:
                datasource[date_key] = ensure_date(date)

        # Update our current data if we have any with new data
        if self.instance:
            instance_data = self.instance.__dict__
            instance_data.update(datasource)
            datasource = instance_data

        # Validate our dates are in a chronologically sound order
        start_date = datasource.get("cycle_start_date")
        end_date = datasource.get("cycle_end_date")
        deadline_date = datasource.get("cycle_deadline_date")

        if end_date < start_date:
            raise serializers.ValidationError(
                "Cycle start date must be before cycle end date")
        if end_date < deadline_date:
            raise serializers.ValidationError(
                "Cycle deadline date must be on or before the cycle end date")
        if deadline_date < start_date:
            raise serializers.ValidationError(
                "Cycle deadline date must be after cycle start date")

        return data
Пример #4
0
    def validate(self, data):
        datasource = self.initial_data

        # Convert incoming string dates into date objects for validation
        date = datasource.get('scheduled_panel_date', None)
        if date:
            datasource['scheduled_panel_date'] = ensure_date(date)

        # Update our current data if we have any with new data
        if self.instance:
            instance_data = self.instance.__dict__
            instance_data.update(datasource)
            datasource = instance_data

        return data
Пример #5
0
 def save(self, *args, **kwargs):
     # Set the retirement date to the user's birthdate + 65 years
     if self.date_of_birth:
         self.mandatory_retirement_date = ensure_date(
             self.date_of_birth) + relativedelta(years=65)
     super(UserProfile, self).save(*args, **kwargs)
 def process_function(instance, item):
     setattr(instance, field, ensure_date(item.text))
Пример #7
0
 def save(self, *args, **kwargs):
     self.next_synchronization = ensure_date(
         self.last_synchronization) + relativedelta(
             seconds=self.delta_synchronization)
     super(SynchronizationJob, self).save(*args, **kwargs)