def init_local(self): super(CreateEnrollmentValidationEventsTask, self).init_local() # need to determine the date of the input, by reading the appropriate # metadata file. File looks like this: # {"start_time": "2014-10-08T04:52:48.154228", "end_time": "2014-10-08T04:55:18.269070"} metadata_target = self._get_metadata_target() with metadata_target.open('r') as metadata_file: metadata = json.load(metadata_file) self.dump_start_time = metadata["start_time"] self.dump_end_time = metadata["end_time"] log.debug("Found self.dump_start_time = %s end_time = %s", self.dump_start_time, self.dump_end_time) self.dump_date = ''.join((self.dump_start_time.split('T')[0]).split('-')) # Set the timestamp of all events to be the dump's end time. # The events that are actually dumped are not within a transaction, # so the actual event time may be earlier, anywhere up to the dump's start time. self.factory = SyntheticEventFactory( timestamp=self.dump_end_time, event_source='server', event_type=VALIDATED, synthesizer='enrollment_from_db', reason='db entry' )
def __init__(self, course_id, user_id, interval, events, **kwargs): self.course_id = course_id self.user_id = user_id self.interval = interval self.creation_timestamp = None self.tuple_output = kwargs.get('tuple_output') self.include_nonstate_changes = kwargs.get('include_nonstate_changes') self.generate_before = kwargs.get('generate_before') self.lower_bound_date_string = kwargs.get('lower_bound_date_string') self.earliest_timestamp = kwargs.get('earliest_timestamp') self.expected_validation = kwargs.get('expected_validation') if self.tuple_output: self.generate_output = self._create_tuple else: self.factory = SyntheticEventFactory( event_source='server', synthesizer='enrollment_validation', ) self.generate_output = self._synthetic_event # Create list of events in reverse order, as processing goes backwards # from validation states. self.sorted_events = [ EnrollmentEvent(timestamp, event_type, mode, validation_info) for timestamp, event_type, mode, validation_info in sorted( events, reverse=True) ] self._reorder_within_dumps() if self.expected_validation: self._check_for_missing_validation() # Add a marker event to signal the beginning of the interval. initial_state = EnrollmentEvent(None, SENTINEL, mode='honor', validation_info=None) self.sorted_events.append(initial_state)
def setUp(self): self.task_class = CourseEnrollmentValidationTask super(CourseEnrollmentValidationTaskMapTest, self).setUp() self.initialize_ids() self.user_id = 21 self.timestamp = "2013-12-17T15:38:32.805444" self.mode = 'honor' self.factory = SyntheticEventFactory( timestamp=self.timestamp, event_source='server', event_type=ACTIVATED, synthesizer='enrollment_from_db', reason='db entry', user_id=self.user_id, course_id=self.course_id, org_id=self.org_id, ) self.expected_key = (self.course_id, self.user_id)
def setUp(self): self.initialize_ids() fake_param = luigi.DateIntervalParameter() self.task = CourseEnrollmentValidationTask( interval=fake_param.parse('2013-12-17'), output_root='/fake/output') self.task.init_local() self.user_id = 21 self.timestamp = "2013-12-17T15:38:32.805444" self.mode = 'honor' self.factory = SyntheticEventFactory( timestamp=self.timestamp, event_source='server', event_type=ACTIVATED, synthesizer='enrollment_from_db', reason='db entry', user_id=self.user_id, course_id=self.course_id, org_id=self.org_id, )