Example #1
0
def test_me():
    with patch("taiga.base.connectors.github.login") as m_login, \
            patch("taiga.base.connectors.github.get_user_profile") as m_get_user_profile, \
            patch("taiga.base.connectors.github.get_user_emails") as m_get_user_emails:
        m_login.return_value = github.AuthInfo(access_token="xxxxxxxx")
        m_get_user_profile.return_value = github.User(
            id=1955,
            username="******",
            full_name="martin seamus mcfly",
            bio="time traveler")
        m_get_user_emails.return_value = [
            github.Email(email="*****@*****.**", is_primary=False),
            github.Email(email="*****@*****.**", is_primary=True)
        ]

        email, user = github.me("**access-code**")

        assert email == "*****@*****.**"
        assert user.id == 1955
        assert user.username == "mmcfly"
        assert user.full_name == "martin seamus mcfly"
        assert user.bio == "time traveler"

        headers = github.HEADERS.copy()
        headers["Authorization"] = "token xxxxxxxx"
        m_get_user_profile.assert_called_once_with(headers=headers)
        m_get_user_emails.assert_called_once_with(headers=headers)
Example #2
0
def test_response_200_in_registration_with_github_account_and_existed_user_by_email(
        client, settings):
    settings.PUBLIC_REGISTER_ENABLED = False
    form = {"type": "github", "code": "xxxxxx"}
    user = factories.UserFactory()
    user.email = "*****@*****.**"
    user.github_id = None
    user.save()

    with patch("taiga.base.connectors.github.me") as m_me:
        m_me.return_value = ("*****@*****.**",
                             github.User(id=1955,
                                         username="******",
                                         full_name="martin seamus mcfly",
                                         bio="time traveler"))

        response = client.post(reverse("auth-list"), form)
        assert response.status_code == 200
        assert response.data["username"] == user.username
        assert response.data["auth_token"] != "" and response.data[
            "auth_token"] != None
        assert response.data["email"] == user.email
        assert response.data["full_name"] == user.full_name
        assert response.data["bio"] == user.bio
        assert response.data["github_id"] == 1955
Example #3
0
def test_response_404_in_registration_with_github_in_a_project_with_invalid_token(
        client, settings):
    settings.PUBLIC_REGISTER_ENABLED = False
    form = {"type": "github", "code": "xxxxxx", "token": "123456"}

    with patch("taiga.base.connectors.github.me") as m_me:
        m_me.return_value = ("*****@*****.**",
                             github.User(id=1955,
                                         username="******",
                                         full_name="martin seamus mcfly",
                                         bio="time traveler"))

        response = client.post(reverse("auth-list"), form)
        assert response.status_code == 404
Example #4
0
def test_response_200_in_registration_with_github_account_in_a_project(client, settings):
    settings.PUBLIC_REGISTER_ENABLED = False
    membership_model = apps.get_model("projects", "Membership")
    membership = factories.MembershipFactory(user=None)
    form = {"type": "github",
            "code": "xxxxxx",
            "token": membership.token}

    with patch("taiga.base.connectors.github.me") as m_me:
        m_me.return_value = ("*****@*****.**",
                             github.User(id=1955,
                                        username="******",
                                        full_name="martin seamus mcfly",
                                        bio="time traveler"))

        response = client.post(reverse("auth-list"), form)
        assert response.status_code == 200
        assert membership_model.objects.get(token=form["token"]).user.username == "mmcfly"