Esempio n. 1
0
def test_gather_deps():
    tsk = luigi.Task()
    deps = gather_deps(tsk)
    assert deps == set()

    class T1(luigi.Task):
        def requires(self):
            return luigi.Task()

        pass

    class T2(luigi.Task):
        def requires(self):
            return T1()

        pass

    class T3(luigi.Task):
        def requires(self):
            return [T2(), T1()]

        pass

    tsk = T3()
    deps = gather_deps(tsk)
    assert deps == {T2(), T1(), luigi.Task()}
Esempio n. 2
0
 def test_success_empties_queue(self):
     """Test success event empties the failure queue"""
     bot = SlackBot(self.token,
                    events=[SUCCESS, FAILURE],
                    channels=self.channels)
     bot.set_handlers()
     task1 = luigi.Task()  # task1 and task2 have the same task_id
     task2 = luigi.Task()
     self.assertEqual(len(bot.event_queue.get(FAILURE, [])), 0)
     task2.trigger_event(luigi.event.Event.FAILURE, task2, Exception())
     self.assertEqual(len(bot.event_queue.get(FAILURE)), 1)
     task1.trigger_event(luigi.event.Event.SUCCESS, task1)
     self.assertEqual(len(bot.event_queue.get(FAILURE)), 0)
Esempio n. 3
0
 def test_success(self):
     """Test successful task if queued"""
     bot = SlackBot(self.token, events=[SUCCESS], channels=self.channels)
     bot.set_handlers()
     task = luigi.Task()
     self.assertEqual(len(bot.event_queue.get(SUCCESS, [])), 0)
     task.trigger_event(luigi.event.Event.SUCCESS, task)
     self.assertEqual(len(bot.event_queue.get(SUCCESS)), 1)
Esempio n. 4
0
 def test_missing(self):
     """Test missing dependency event adds task in queue"""
     bot = SlackBot(self.token, events=[MISSING], channels=self.channels)
     bot.set_handlers()
     task = luigi.Task()
     self.assertEqual(len(bot.event_queue.get(MISSING, [])), 0)
     task.trigger_event(luigi.event.Event.DEPENDENCY_MISSING, task)
     self.assertEqual(len(bot.event_queue.get(MISSING)), 1)
Esempio n. 5
0
 def test_failure(self):
     """Test failure event adds task in queue"""
     bot = SlackBot(self.token, events=[FAILURE], channels=self.channels)
     bot.set_handlers()
     task = luigi.Task()
     self.assertEqual(len(bot.event_queue.get(FAILURE, [])), 0)
     task.trigger_event(luigi.event.Event.FAILURE, task, Exception())
     self.assertEqual(len(bot.event_queue.get(FAILURE)), 1)
Esempio n. 6
0
 def test_start(self):
     """Test start event adds task in queue"""
     bot = SlackBot(self.token, events=[START], channels=self.channels)
     bot.set_handlers()
     task = luigi.Task()
     self.assertEqual(len(bot.event_queue.get(START, [])), 0)
     task.trigger_event(luigi.event.Event.START, task)
     self.assertEqual(len(bot.event_queue.get(START)), 1)
Esempio n. 7
0
 def test_event_not_implemented(self):
     """Test processing time event is not implemented yet"""
     bot = SlackBot(self.token,
                    events=[PROCESSING_TIME],
                    channels=self.channels)
     bot.set_handlers()
     task = luigi.Task()
     self.assertRaises(
         NotImplementedError,
         task.trigger_event(luigi.event.Event.PROCESSING_TIME, task))
Esempio n. 8
0
def test_serialize():
    task = luigi.Task()
    param = DictParameterPlus(default={
        'first': 1,
        'second': 'a',
        'third': task
    })
    _json = param.serialize(task)
    assert type(_json) is str
    assert len(_json) > 0
Esempio n. 9
0
 def test_no_unpicklable_properties(self):
     task = luigi.Task()
     task.set_tracking_url = lambda tracking_url: tracking_url
     task.set_status_message = lambda message: message
     with task.no_unpicklable_properties():
         pickle.dumps(task)
     self.assertIsNotNone(task.set_tracking_url)
     self.assertIsNotNone(task.set_status_message)
     tracking_url = task.set_tracking_url('http://test.luigi.com/')
     self.assertEqual(tracking_url, 'http://test.luigi.com/')
     message = task.set_status_message('message')
     self.assertEqual(message, 'message')
Esempio n. 10
0
    def test_different_task_doesnt_empty_queue(self):
        """Test a successful task doesn't empty queue with different task"""
        class CustomTask(luigi.Task):
            pass

        bot = SlackBot(self.token,
                       events=[SUCCESS, FAILURE],
                       channels=self.channels)
        bot.set_handlers()
        task1 = luigi.Task()  # task1 and task2 have different task_id
        task2 = CustomTask()
        self.assertEqual(len(bot.event_queue.get(FAILURE, [])), 0)
        task2.trigger_event(luigi.event.Event.FAILURE, task2, Exception())
        self.assertEqual(len(bot.event_queue.get(FAILURE)), 1)
        task1.trigger_event(luigi.event.Event.SUCCESS, task1)
        self.assertEqual(len(bot.event_queue.get(FAILURE)), 1)
Esempio n. 11
0
 def test_externalized_task_picklable(self):
     task = luigi.task.externalize(luigi.Task())
     pickled_task = pickle.dumps(task)
     self.assertEqual(task, pickle.loads(pickled_task))
Esempio n. 12
0
def test_encoder():
    encoder = _DictParamEncoderPlus()
    task = luigi.Task()
    for value in [1, 1.0, 'a', (1, 2), task]:
        encoder.default(value)
Esempio n. 13
0
 def requires(self):
     return luigi.Task()