コード例 #1
0
def test_moderator_validate_name():
    """validate the input"""
    user = UserFactory.create()
    serializer = ModeratorPrivateSerializer(
        data={"moderator_name": user.username})
    serializer.is_valid()
    assert "moderator_name" not in serializer.errors
コード例 #2
0
def test_moderator_validate_name_no_valid_user():
    """validate the input in case the user does not exists in the DB"""
    serializer = ModeratorPrivateSerializer(
        data={"moderator_name": "foo_user"})
    assert serializer.is_valid() is False
    assert serializer.errors["moderator_name"][
        0] == "username is not a valid user"
コード例 #3
0
def test_moderator_create_email():
    """Adds a moderator by email address"""
    user = UserFactory.create()
    moderator_user = UserFactory.create()
    moderator_redditor = Mock(spec=Redditor)
    moderator_redditor.name = moderator_user.username
    add_moderator_mock = Mock(return_value=None)
    list_moderators_mock = Mock(return_value=[moderator_redditor])
    api_mock = Mock(add_moderator=add_moderator_mock,
                    _list_moderators=list_moderators_mock)
    channel_name = "foo_channel"
    # Make sure that we're testing case insensitivity of email
    assert moderator_user.email != moderator_user.email.upper()
    moderator = ModeratorPrivateSerializer(
        context={
            "channel_api": api_mock,
            "request": Mock(user=user),
            "view": Mock(kwargs={"channel_name": channel_name}),
        }).create({"email": moderator_user.email.upper()})
    assert moderator is moderator_redditor

    add_moderator_mock.assert_called_once_with(moderator_user.username,
                                               channel_name)
    list_moderators_mock.assert_called_once_with(
        channel_name=channel_name, moderator_name=moderator_user.username)
コード例 #4
0
def test_moderator_create_neither():
    """The user must specify an email address or a username"""
    user = UserFactory.create()
    moderator_user = UserFactory.create()
    moderator_redditor = Mock(spec=Redditor)
    moderator_redditor.name = moderator_user.username
    api_mock = Mock(add_moderator=Mock(return_value=moderator_redditor))
    # Make sure that we're testing case insensitivity of email
    assert moderator_user.email != moderator_user.email.upper()

    with pytest.raises(ValueError) as ex:
        ModeratorPrivateSerializer(
            context={
                "channel_api": api_mock,
                "request": Mock(user=user),
                "view": Mock(kwargs={"channel_name": "foo_channel"}),
            }).create({})
    assert ex.value.args[0] == "Missing moderator_name or email"
コード例 #5
0
def test_moderator_create_username():
    """Adds a moderator by username"""
    user = UserFactory.create()
    moderator_user = UserFactory.create()
    moderator_redditor = Mock(spec=Redditor)
    moderator_redditor.name = moderator_user.username
    add_moderator_mock = Mock(return_value=None)
    list_moderators_mock = Mock(return_value=[moderator_redditor])
    api_mock = Mock(add_moderator=add_moderator_mock,
                    _list_moderators=list_moderators_mock)
    channel_name = "foo_channel"
    moderator = ModeratorPrivateSerializer(
        context={
            "channel_api": api_mock,
            "request": Mock(user=user),
            "view": Mock(kwargs={"channel_name": channel_name}),
        }).create({"moderator_name": moderator_user.username})
    assert moderator is moderator_redditor
    api_mock.add_moderator.assert_called_once_with(moderator_user.username,
                                                   channel_name)
    list_moderators_mock.assert_called_once_with(
        channel_name=channel_name, moderator_name=moderator_user.username)
コード例 #6
0
def test_moderator_validate_email():
    """validate the input"""
    user = UserFactory.create()
    serializer = ModeratorPrivateSerializer(data={"email": user.email})
    serializer.is_valid()
    assert "email" not in serializer.errors
コード例 #7
0
def test_moderator_validate_email_no_valid_user():
    """validate the input in case the user does not exists in the DB"""
    serializer = ModeratorPrivateSerializer(data={"email": "foo_user"})
    assert serializer.is_valid() is False
    assert serializer.errors["email"][0] == "email does not exist"
コード例 #8
0
def test_moderator_validate_email_no_string():
    """validate the input in case the value is not a string"""
    serializer = ModeratorPrivateSerializer(data={"email": 123})
    assert serializer.is_valid() is False
    assert serializer.errors["email"][0] == "email must be a string"