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()
    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()
 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
     })
    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")
    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")
    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_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_set_target_can_complete_with_http(self):
        ctrl = self.make_controller(TargetSetController, conf=self.fixture_for('test.conf'), target='my-target.wight.com')
        ctrl.default()

        ud = UserData.load()
        expect(ud).not_to_be_null()
        expect(ud.target).to_equal("http://my-target.wight.com")
Beispiel #12
0
 def test_can_set_team_and_project(self):
     result = self.execute("default-set", team=self.team, project=self.project)
     expected = "Default team set to '%s'. Default project set to '%s'." % (self.team, self.project)
     expect(result).to_be_like(expected)
     ud = UserData.load()
     expect(ud.team).to_be_like(self.team)
     expect(ud.project).to_be_like(self.project)
Beispiel #13
0
    def setUp(self):
        self.clear_user_data()

        self.target = "http://localhost:2368"
        self.execute("target-set", self.target)
        user_data = UserData.load()
        user_data.token = "token-value"
        user_data.save()
Beispiel #14
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()
Beispiel #15
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_set_target_can_complete_with_http(self):
        ctrl = self.make_controller(TargetSetController,
                                    conf=self.fixture_for('test.conf'),
                                    target='my-target.wight.com')
        ctrl.default()

        ud = UserData.load()
        expect(ud).not_to_be_null()
        expect(ud.target).to_equal("http://my-target.wight.com")
Beispiel #18
0
    def default(self):
        self.load_conf()

        target = self.arguments.target
        self.line_break()
        self.putsuccess("Wight target set to '%s%s%s'. In order to login with wight, use '%swight login%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()
 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 #20
0
    def test_can_set_target(self):
        target = "http://my-test-target:2324"

        # Set target to acc target
        result = self.execute("target-set", target)
        expected = "Wight target set to '%s'. In order to login with wight, use 'wight login <email>'."
        expect(result).to_be_like(expected % target)

        ud = UserData.load()
        expect(ud.target).to_be_like(target)
Beispiel #21
0
    def test_can_set_target(self):
        target = "http://my-test-target:2324"

        # Set target to acc target
        result = self.execute("target-set", target)
        expected = "Wight target set to '%s'. In order to login with wight, use 'wight login <email>'."
        expect(result).to_be_like(expected % target)

        ud = UserData.load()
        expect(ud.target).to_be_like(target)
Beispiel #22
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"}
     )
Beispiel #23
0
    def default(self):
        self.load_conf()

        user_data = UserData.load()

        if user_data is None:
            self.write("No target set.")
            return

        self.write("Current target set to '%s'." % user_data.target)
Beispiel #24
0
 def test_can_set_team_and_project(self):
     result = self.execute("default-set",
                           team=self.team,
                           project=self.project)
     expected = "Default team set to '%s'. Default project set to '%s'." % (
         self.team, self.project)
     expect(result).to_be_like(expected)
     ud = UserData.load()
     expect(ud.team).to_be_like(self.team)
     expect(ud.project).to_be_like(self.project)
Beispiel #25
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_set_project(self, mock_stdout):
     ctrl = self.make_controller(
         SetDefaultController, conf=self.fixture_for("test.conf"), team=None, project=self.project
     )
     self.authenticate(ctrl)
     ctrl.default()
     ud = UserData.load()
     expect(hasattr(ud, "project")).to_be_true()
     expect(ud.project).to_equal(self.project)
     expect(hasattr(ud, "team")).to_be_false()
     expect(mock_stdout.getvalue()).to_be_like("Default team not set. Default project set to '%s'." % self.project)
 def test_set_team_and_project(self, mock_stdout):
     ctrl = self.make_controller(
         SetDefaultController, conf=self.fixture_for("test.conf"), team=self.team, project=self.project
     )
     self.authenticate(ctrl)
     ctrl.default()
     ud = UserData.load()
     expect(ud.team).to_equal(self.team)
     expect(ud.project).to_equal(self.project)
     expect(mock_stdout.getvalue()).to_be_like(
         "Default team set to '%s'. Default project set to '%s'." % (self.team, self.project)
     )
Beispiel #28
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()
    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")
    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!")
Beispiel #31
0
 def test_set_team_and_project(self, mock_stdout):
     ctrl = self.make_controller(SetDefaultController,
                                 conf=self.fixture_for('test.conf'),
                                 team=self.team,
                                 project=self.project)
     self.authenticate(ctrl)
     ctrl.default()
     ud = UserData.load()
     expect(ud.team).to_equal(self.team)
     expect(ud.project).to_equal(self.project)
     expect(mock_stdout.getvalue()).to_be_like(
         "Default team set to '%s'. Default project set to '%s'." %
         (self.team, self.project))
Beispiel #32
0
 def test_set_team(self, mock_stdout):
     ctrl = self.make_controller(SetDefaultController,
                                 conf=self.fixture_for('test.conf'),
                                 team=self.team,
                                 project=None)
     self.authenticate(ctrl)
     ctrl.default()
     ud = UserData.load()
     expect(hasattr(ud, "team")).to_be_true()
     expect(ud.team).to_equal(self.team)
     expect(hasattr(ud, "project")).to_be_false()
     expect(mock_stdout.getvalue()).to_be_like(
         "Default team set to '%s'. Default project not set." % self.team)
Beispiel #33
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()
 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 #35
0
    def default(self):
        self.load_conf()

        user_data = UserData.load()

        if user_data is None:
            self.abort("No target set.")
            return

        self.line_break()
        self.putsuccess(
            "Current Wight target is '%s%s%s'. In order to login with wight, use '%swight login <email>%s'."
            % (self.keyword_color, user_data.target, self.reset_success,
               self.commands_color, self.reset_success))
        self.line_break()
Beispiel #36
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()
Beispiel #37
0
    def default(self):
        self.load_conf()

        user_data = UserData.load()

        if user_data is None:
            self.abort("No target set.")
            return

        self.line_break()
        self.putsuccess("Current Wight target is '%s%s%s'. In order to login with wight, use '%swight login <email>%s'." % (
            self.keyword_color, user_data.target, self.reset_success,
            self.commands_color, self.reset_success
        ))
        self.line_break()
Beispiel #38
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_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 #40
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")
    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 #42
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 #43
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()
def assert_token_is(token):
    data = UserData.load()
    expect(data.token).to_equal(token)
Beispiel #45
0
 def __init__(self, label=None, **kw):
     super(WightApp, self).__init__(**kw)
     self.user_data = UserData.load()
     init(autoreset=True)
Beispiel #46
0
 def authenticate(self):
     self.ctrl.app.user_data = UserData(target="Target")
     self.ctrl.app.user_data.token = "token-value"
Beispiel #47
0
 def test_can_set_team(self):
     result = self.execute("default-set", team=self.team)
     expected = "Default team set to '%s'. Default project not set." % self.team
     expect(result).to_be_like(expected)
     ud = UserData.load()
     expect(ud.team).to_be_like(self.team)
Beispiel #48
0
 def test_can_set_project(self):
     result = self.execute("default-set", project=self.project)
     expected = "Default team not set. Default project set to '%s'." % self.project
     expect(result).to_be_like(expected)
     ud = UserData.load()
     expect(ud.project).to_be_like(self.project)
 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})
 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_user_data_returns_none_from_invalid_path(self):
     loaded = UserData.load("/some/invalid/path")
     expect(loaded).to_be_null()