Exemplo n.º 1
0
Arquivo: rpm.py Projeto: beav/pulp_rpm
 def __init__(self, conduit):
     """
     @param conduit: A handler conduit.
     @type conduit: L{pulp.agent.lib.conduit.Conduit}
     """
     ProgressReport.__init__(self)
     self.conduit = conduit
Exemplo n.º 2
0
    def test_updated(self, log):
        # test
        pr = ProgressReport()
        pr._updated()

        # validation
        self.assertTrue(log.info.called)
Exemplo n.º 3
0
 def __init__(self, conduit):
     """
     :param conduit: A handler conduit.
     :type conduit: pulp.agent.lib.conduit.Conduit
     """
     ProgressReport.__init__(self)
     self.conduit = conduit
Exemplo n.º 4
0
    def test_set_status_no_steps(self, _updated):
        # test
        pr = ProgressReport()
        pr.set_status(True)

        # validation
        self.assertEqual(pr.steps, [])
        self.assertEqual(pr.details, {})
        self.assertFalse(_updated.called)
Exemplo n.º 5
0
    def test_set_action(self, _updated):
        pr = ProgressReport()
        package = 'openssl'
        action = '100'

        # test
        pr.set_action(action, package)

        # validation
        self.assertEqual(pr.details, dict(action=action, package=package))
        self.assertTrue(_updated.called)
Exemplo n.º 6
0
    def test_push_step(self, _updated):
        step = 'started'

        # test
        pr = ProgressReport()
        pr.push_step(step)

        # validation
        self.assertEqual(pr.details, {})
        self.assertEqual(pr.steps, [[step, None]])
        self.assertTrue(_updated.called)
Exemplo n.º 7
0
    def test_errorlog(self):
        pr = ProgressReport()
        pr._updated = Mock()

        # test
        cb = RPMCallback(pr)
        message = 'Something bad happened'
        cb.errorlog(message)

        # validation
        self.assertEqual(pr.details['error'], message)
        self.assertEqual(len(pr.steps), 0)
Exemplo n.º 8
0
    def test_filelog(self):
        pr = ProgressReport()
        pr._updated = Mock()

        # test and validation
        cb = RPMCallback(pr)
        for action in sorted(cb.fileaction.keys()):
            package = '%s_package' % action
            cb.filelog(package, action)
            self.assertEqual(pr.details['action'], cb.fileaction[action])
            self.assertEqual(pr.details['package'], package)
        self.assertEqual(len(pr.steps), 0)
Exemplo n.º 9
0
    def test_download_callback(self):
        files = ('A', 'B', 'C')
        pr = ProgressReport()
        pr._updated = Mock()

        # test and validation
        cb = DownloadCallback(pr)
        for file in files:
            path = '/path/%s' % file
            cb.start(filename=path, basename=file, size=1024)
            self.assertEqual(pr.details['action'], 'Downloading')
            self.assertEqual(pr.details['package'], '%s | 1.0 k' % file)
        self.assertEqual(len(pr.steps), 0)
Exemplo n.º 10
0
    def test_filelog_invalid_action(self):
        pr = ProgressReport()
        pr._updated = Mock()

        # test
        cb = RPMCallback(pr)
        package = 'openssl'
        action = 12345678
        cb.filelog(package, action)

        # validation
        self.assertEqual(pr.details['action'], str(action))
        self.assertEqual(pr.details['package'], package)
        self.assertEqual(len(pr.steps), 0)
Exemplo n.º 11
0
    def test_report_steps(self):
        steps = ('A', 'B', 'C')
        action = ('downloading', 'package-xyz-1.0-1.f16.rpm')

        # test and validation
        pr = ProgressReport()
        pr._updated = Mock()
        for s in steps:
            # validate steps pushed with status of None
            pr.push_step(s)
            name, status = pr.steps[-1]
            self.assertEqual(name, s)
            self.assertTrue(status is None)
            # validate details cleared on state pushed
            self.assertEqual(len(pr.details), 0)
            # set the action
            pr.set_action(action[0], action[1])
            # validate action
            self.assertEqual(pr.details['action'], action[0])
            self.assertEqual(pr.details['package'], action[1])
            # validate previous step status is set (True) on next
            # push when status is None
            prev = pr.steps[-2:-1]
            if prev:
                self.assertTrue(prev[0][1])
Exemplo n.º 12
0
    def test_trans_callback(self):
        pr = ProgressReport()
        pr._updated = Mock()

        # test
        cb = ProcessTransCallback(pr)
        for state in sorted(PT_MESSAGES.keys()):
            cb.event(state)
        pr.set_status(True)

        # validation
        self.assertEqual(len(PT_MESSAGES), len(pr.steps))
        i = 0
        for state in sorted(PT_MESSAGES.keys()):
            step = pr.steps[i]
            name = PT_MESSAGES[state]
            self.assertEqual(step[0], name)
            self.assertTrue(step[1])
            i += 1
Exemplo n.º 13
0
    def test_report_steps_with_errors(self):
        # Test that previous state with status=False is not
        # set (True) on next state push
        steps = ('A', 'B', 'C')

        # test
        pr = ProgressReport()
        pr._updated = Mock()
        pr.push_step(steps[0])
        pr.push_step(steps[1])
        pr.set_status(False)
        pr.push_step(steps[2])

        # validation
        self.assertTrue(pr.steps[0][1])
        self.assertFalse(pr.steps[1][1])
        self.assertTrue(pr.steps[2][1] is None)
Exemplo n.º 14
0
    def test_error(self, _updated):
        pr = ProgressReport()
        step = 'started'
        pr.push_step(step)
        message = 'This is bad'

        # test
        pr.error(message)

        # validation
        self.assertEqual(pr.details, dict(error=message))
        self.assertEqual(pr.steps, [[step, False]])
        self.assertTrue(_updated.called)