def test_adding_project_default(self):
        ud = UserData(target="target")

        ud.set_default(project="project-blah")
        expect(hasattr(ud, "project")).to_be_true()
        expect(ud.project).to_equal("project-blah")
        expect(hasattr(ud, "team")).to_be_false()
Beispiel #2
0
 def setUp(self):
     self.ctrl = self.make_controller(self.controller_class,
                                      conf=self.fixture_for('test.conf'),
                                      **self.controller_kwargs)
     self.ctrl.app.user_data = UserData(target="Target")
     self.ctrl.app.user_data.token = "token-value"
     self.get_mock = patch('requests.get')
     self.get_mock.start()
 def test_saving_with_project(self):
     ud = UserData(target="target")
     ud.set_default(project="project-blah")
     ud.save()
     loaded = UserData.load()
     expect(hasattr(loaded, "project")).to_be_true()
     expect(loaded.project).to_equal("project-blah")
     expect(hasattr(loaded, "team")).to_be_false()
Beispiel #4
0
    def test_authenticated_decorator_works_when_all_values_correct(self):
        ctrl = self.make_controller(AuthenticatedControllerMock)
        ctrl.app.user_data = UserData(target="Target")
        ctrl.app.user_data.token = "token-value"

        ctrl.default()

        expect(ctrl.worked).to_be_true()
 def setUp(self):
     self.ctrl = self.make_controller(ShowUserController,
                                      conf=self.fixture_for('test.conf'),
                                      team_name='nameless')
     self.ctrl.app.user_data = UserData(target="Target")
     self.ctrl.app.user_data.token = "token-value"
     self.get_mock = patch('requests.get')
     self.get_mock.start()
 def test_to_dict_with_team(self):
     ud = UserData(target="target")
     ud.set_default(team="team-blah")
     ud_dict = ud.to_dict()
     expect(ud_dict).to_be_like({
         "target": "target",
         "team": "team-blah",
         "token": None
     })
 def test_to_dict_with_project(self):
     ud = UserData(target="target")
     ud.set_default(project="project-blah")
     ud_dict = ud.to_dict()
     expect(ud_dict).to_be_like({
         "target": "target",
         "project": "project-blah",
         "token": None
     })
Beispiel #8
0
 def test_make_a_post_with_correct_values(self, post_mock):
     ctrl = self.make_controller(WightBaseController, conf=self.fixture_for('test.conf'))
     ctrl.app.user_data = UserData(target="Target")
     ctrl.app.user_data.token = "token-value"
     ctrl.post("/post-url", data={"some": "data"})
     post_mock.assert_called_with(
         "Target/post-url",
         data={"some": "data", "target": "Target"},
         headers={"X-Wight-Auth": "token-value"}
     )
    def test_user_data_deserializes_properly(self):
        ud = UserData(target="http://target2.wight.com")

        directory = tempfile.mkdtemp()
        path = join(directory, '.wight-user-data')

        ud.save(path)

        loaded = UserData.load(path)
        expect(loaded.target).to_equal("http://target2.wight.com")
    def test_user_data_returns_from_default_path(self):
        if exists(UserData.DEFAULT_PATH):
            os.remove(UserData.DEFAULT_PATH)

        ud = UserData(target="http://target3.wight.com")
        ud.save()

        loaded = UserData.load()
        expect(loaded).not_to_be_null()
        expect(loaded.target).to_equal("http://target3.wight.com")
Beispiel #11
0
    def test_authenticated_decorator_verifies_token_exists(self):
        ctrl = self.make_controller(AuthenticatedControllerMock)
        ctrl.app.user_data = UserData(target="Target")

        try:
            ctrl.default()
        except UnauthenticatedError:
            assert True
            return

        assert False, "Should not have gotten this far"
    def test_user_data_serializes_properly(self):
        ud = UserData(target="http://target2.wight.com")

        directory = tempfile.mkdtemp()
        path = join(directory, '.wight-user-data')

        ud.save(path)

        with open(path, 'r') as text:
            obj = loads(text.read())
            expect(obj).to_include("target")
            expect(obj['target']).to_equal("http://target2.wight.com")
    def test_change_password_message_if_unknown_return_code_from_api(
            self, get_pass_mock, puterror_mock, post_mock):
        post_mock.return_value = Mock(status_code=500)
        get_pass_mock.return_value = "testing"

        ctrl = self.make_controller(ChangePasswordController,
                                    conf=self.fixture_for('test.conf'))
        ctrl.app.user_data = UserData(target="Target")
        ctrl.app.user_data.token = "token-value"
        ctrl.default()

        puterror_mock.assert_called_with(
            "Wight API returned an unexpected status code!")
    def test_change_password_fails_if_old_pass_is_wrong(
            self, get_pass_mock, puterror_mock, post_mock):
        post_mock.return_value = Mock(status_code=403)
        get_pass_mock.return_value = "testing"

        ctrl = self.make_controller(ChangePasswordController,
                                    conf=self.fixture_for('test.conf'))
        ctrl.app.user_data = UserData(target="Target")
        ctrl.app.user_data.token = "token-value"
        ctrl.default()

        puterror_mock.assert_called_with(
            "The original password didn't match. Please try again")
Beispiel #15
0
    def test_default_action_when_email_is_none(self, ask_for_mock,
                                               mock_stdout):
        ask_for_mock.return_value = None

        ctrl = self.make_controller(AuthController,
                                    conf=self.fixture_for('test.conf'),
                                    email=None)
        ctrl.app.user_data = UserData(target="test-target")

        expect(ctrl.default()).to_be_false()

        expect(mock_stdout.getvalue()).to_be_like("Aborting...")
        expect(ask_for_mock.called).to_be_true()
Beispiel #16
0
    def test_default_action_when_invalid_password(self, get_mock, mock_stdout):
        user = UserFactory.create()

        response_mock = mock.Mock(status_code=403)
        get_mock.return_value = response_mock

        ctrl = self.make_controller(AuthController,
                                    conf=self.fixture_for('test.conf'),
                                    email=user.email,
                                    password="******")
        ctrl.app.user_data = UserData(target=self.get_url('/'))
        expect(ctrl.default()).to_be_false()

        expect(mock_stdout.getvalue()).to_be_like("Authentication failed.")
        expect(get_mock.called).to_be_true()
    def test_change_password_fails_if_password_matching_fails(
            self, get_pass_mock, puterror_mock):

        ctrl = self.make_controller(ChangePasswordController,
                                    conf=self.fixture_for('test.conf'))
        ctrl.app.user_data = UserData(target="Target")
        ctrl.app.user_data.token = "token-value"
        pass_values = ['testing', 'retesting', 'reretesting']

        def side_effect(self):
            return pass_values.pop()

        get_pass_mock.side_effect = side_effect

        ctrl.default()
        puterror_mock.assert_called_with(
            "New password check failed. Please try again.")
Beispiel #18
0
    def test_default_action_when_user_not_found_but_dont_want_to_register(
            self, get_mock, ask_for_mock, mock_stdout):
        user = UserFactory.create()

        response_mock = mock.Mock(status_code=404)
        get_mock.return_value = response_mock
        ask_for_mock.return_value = "N"

        ctrl = self.make_controller(AuthController,
                                    conf=self.fixture_for('test.conf'),
                                    email=user.email,
                                    password="******")
        ctrl.app.user_data = UserData(target=self.get_url('/'))
        expect(ctrl.default()).to_be_false()

        expect(mock_stdout.getvalue()).to_be_like("Aborting...")
        expect(get_mock.called).to_be_true()
    def test_change_password_normally(self, get_pass_mock, putsuccess_mock,
                                      post_mock):
        post_mock.return_value = Mock(status_code=200)
        get_pass_mock.return_value = "testing"

        ctrl = self.make_controller(ChangePasswordController,
                                    conf=self.fixture_for('test.conf'))
        ctrl.app.user_data = UserData(target="Target")
        ctrl.app.user_data.token = "token-value"
        ctrl.default()

        call_list = get_pass_mock.call_args_list
        expect(str(call_list[0]).split("'")[1]).to_be_like(
            "Please enter your current password:"******"'")[1]).to_equal(
            "Please enter your new password:"******"'")[1]).to_equal(
            "Please enter your new password again:")

        putsuccess_mock.assert_called_with("Password changed successfully.")
Beispiel #20
0
    def test_default_action_when_user_authenticated_properly(
            self, get_mock, mock_stdout):
        user = UserFactory.create()

        headers_mock = mock.Mock(get=lambda msg: "test-token-2")
        response_mock = mock.Mock(status_code=200, headers=headers_mock)
        get_mock.return_value = response_mock

        ctrl = self.make_controller(
            AuthController,
            conf=self.fixture_for('test.conf'),
            email=user.email,
            password=UserFactory.get_default_password())
        ctrl.app.user_data = UserData(target=self.get_url('/'))
        expect(ctrl.default()).to_be_true()

        expect(mock_stdout.getvalue()).to_be_like("Authenticated.")
        expect(get_mock.called).to_be_true()

        assert_token_is("test-token-2")
Beispiel #21
0
    def default(self):
        self.load_conf()

        target = self.arguments.target
        target_parsed = urlparse(target)
        if not target_parsed.scheme:
            target = "http://%s" % target_parsed.geturl()

        self.line_break()
        self.putsuccess(
            "Wight target set to '%s%s%s'. In order to login with wight, use '%swight login <email>%s'."
            % (self.keyword_color, target, self.reset_success,
               self.commands_color, self.reset_success))
        self.line_break()

        ud = UserData.load()
        if ud is None:
            ud = UserData(target=target)
        else:
            ud.target = target

        ud.save()
Beispiel #22
0
    def test_default_action_when_user_not_found_but_want_to_register(
            self, get_mock, ask_for_mock, confirm_mock, mock_stdout):
        user = UserFactory.create()

        headers_mock = mock.Mock(get=lambda msg: "test-token")
        response_mock = mock.Mock(status_code=404, headers=headers_mock)
        get_mock.return_value = response_mock
        ask_for_mock.return_value = "Y"
        confirm_mock.return_value = "123"

        ctrl = self.make_controller(AuthController,
                                    conf=self.fixture_for('test.conf'),
                                    email=user.email,
                                    password="******")
        ctrl.app.user_data = UserData(target=self.get_url('/'))
        expect(ctrl.default()).to_be_true()

        expect(mock_stdout.getvalue()).to_be_like(
            "User registered and authenticated.")
        expect(get_mock.called).to_be_true()

        assert_token_is("test-token")
Beispiel #23
0
 def authenticate(self):
     self.ctrl.app.user_data = UserData(target="Target")
     self.ctrl.app.user_data.token = "token-value"
Beispiel #24
0
 def setUp(self):
     self.ctrl = self.make_controller(self.controller_class,
                                      conf=self.fixture_for('test.conf'),
                                      **self.controller_kwargs)
     self.ctrl.app.user_data = UserData(target="Target")
     self.ctrl.app.user_data.token = "token-value"
Beispiel #25
0
 def test_make_a_get(self, get_mock):
     ctrl = self.make_controller(WightBaseController, conf=self.fixture_for('test.conf'))
     ctrl.app.user_data = UserData(target="Target")
     ctrl.get("/get-url")
     expect(get_mock.called).to_be_true()
Beispiel #26
0
 def test_make_a_put(self, put_mock):
     ctrl = self.make_controller(WightBaseController, conf=self.fixture_for('test.conf'))
     ctrl.app.user_data = UserData(target="Target")
     ctrl.put("/put-url", data={"some": "data"})
     expect(put_mock.called).to_be_true()
Beispiel #27
0
 def test_make_a_delete(self, delete_mock):
     ctrl = self.make_controller(WightBaseController, conf=self.fixture_for('test.conf'))
     ctrl.app.user_data = UserData(target="Target")
     ctrl.delete("/delete-url/data")
     expect(delete_mock.called).to_be_true()
    def test_user_data_target(self):
        ud = UserData(target="http://target.wight.com")

        expect(ud.target).to_equal("http://target.wight.com")
Beispiel #29
0
 def test_make_a_get_with_auth(self, get_mock):
     ctrl = self.make_controller(WightBaseController, conf=self.fixture_for('test.conf'))
     ctrl.app.user_data = UserData(target="Target")
     ctrl.app.user_data.token = "Token"
     ctrl.get("/post-url")
     get_mock.assert_called_with("Target/post-url", headers={"X-Wight-Auth": "Token"})