Beispiel #1
0
    def test_status_already_done(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        subject.done = True
        subject.result = 'result'

        result = subject.status()

        assert result == 'result'
Beispiel #2
0
    def test_cleanup(self, mocks, mocker):
        subject = Wget('google.com', self.mock_executor)
        mock_injected_executor = mocker.Mock()

        subject.cleanup(mock_injected_executor)

        self.mock_executor.return_value.terminate.assert_called_with(force=True)
        mock_injected_executor.assert_called_with(['rm -rf', '/tmp/wget/google.com'])
Beispiel #3
0
    def test_status_finished_but_failed_with_known_code(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        self.mock_executor.return_value.isalive.return_value = False
        self.mock_executor.return_value.exitstatus = 1
        expected_result = \
            'wget google.com (1: Generic error code.) FAILED'

        result = subject.status()

        assert subject.done
        assert subject.result == expected_result
        assert result == expected_result
Beispiel #4
0
    def test_status_finished_successfully(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        self.mock_executor.return_value.isalive.return_value = False
        self.mock_executor.return_value.exitstatus = 0
        expected_result = \
            'wget google.com (0: No problems occurred.) SUCCEEDED'

        result = subject.status()

        assert subject.done
        assert subject.result == expected_result
        assert result == expected_result
Beispiel #5
0
    def test_status_finished_but_failed_with_different_known_code(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        self.mock_executor.return_value.isalive.return_value = False
        self.mock_executor.return_value.exitstatus = 8
        expected_result = \
            'wget google.com (8: Server issued an error response.) FAILED'

        result = subject.status()

        assert subject.done
        assert subject.result == expected_result
        assert result == expected_result
Beispiel #6
0
 def wget(self):
     print("\tstarting traffic on %s..." % self.name)
     for site in WGET_SITES:
         print("%s sending wget %s" % (time.ctime(), site))
         self.traffic_handles.append(Wget(site, self.traffic_commands.wget))
         time.sleep(2)
     print("\tdone.")
Beispiel #7
0
    def test_status_still_running(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        self.mock_executor.return_value.is_alive.return_value = True
        self.mock_executor.return_value.expect.return_value = 0

        result = subject.status()

        self.mock_executor.return_value.expect.assert_called_with(
            [
                subject.success_pattern,
                self.mock_pexpect.TIMEOUT,
                self.mock_pexpect.EOF,
            ],
            timeout=1
        )

        assert result == 'wget google.com traffic was successfully routed and is still running'
Beispiel #8
0
    def test_status_waiting_for_first_response(self, mocks):
        subject = Wget('google.com', self.mock_executor)
        self.mock_executor.return_value.is_alive.return_value = True
        self.mock_executor.return_value.expect.return_value = 1

        result = subject.status()

        self.mock_executor.return_value.expect.assert_called_with(
            [
                subject.success_pattern,
                self.mock_pexpect.TIMEOUT,
                self.mock_pexpect.EOF,
            ],
            timeout=1
        )

        assert result == \
            'wget google.com is still waiting for its first response'
Beispiel #9
0
    def test_init(self, mocks):
        subject = Wget('google.com', self.mock_executor)

        assert subject.site == 'google.com'
        assert subject.p == self.mock_executor.return_value
        self.mock_executor.assert_called_with([
            'wget', '--directory-prefix=/tmp/wget/', '--page-requisites',
            '--delete-after', subject.site,
            "--user-agent='%s'" % FAKE_USER_AGENT,
            '--no-check-certificate',
        ])
        assert not subject.done
        assert subject.result == ''
        assert subject.success_pattern == \
            'HTTP request sent, awaiting response... 200 OK'