Esempio n. 1
0
    def register_post(self):
        vm = RegisterViewModel()
        vm.from_dict(self.request.POST)

        vm.validate()
        if vm.error:
            return vm.to_dict()

        account = AccountService.find_account_by_email(vm.email)
        if account:
            vm.error = (
                "An account with this email already exists. " "Please log in instead."
            )
            return vm.to_dict()

        account = AccountService.create_account(
            vm.email, vm.first_name, vm.last_name, vm.password, vm.twitter
        )
        print("Registered new user: "******"Registered new NFLPool user:  {account.first_name} {account.last_name} {account.email}"
        print(message)

        SlackService.send_message(message)

        # send welcome email
        EmailService.send_welcome_email(account.email)

        # redirect
        print("Redirecting to account index page...")
        self.redirect("/account")
Esempio n. 2
0
    def test_register_validation_valid(self):
        # 3 A's of test: Arrange, Act, then Assert

        # Arrange
        from nflpool.viewmodels.register_viewmodel import RegisterViewModel
        from nflpool.data.account import Account

        data = {
            "first_name": "Paul",
            "last_name": "Cutler",
            "email": "*****@*****.**",
            "password": "******",
            "confirm_password": "******",
        }
        # noinspection PyTypeChecker
        vm = RegisterViewModel()
        vm.from_dict(data)

        # Act
        target = "nflpool.services.account_service.AccountService.find_account_by_email"
        with unittest.mock.patch(target, return_value=Account()):
            vm.validate()

        # Assert:
        self.assertIsNone(vm.error)
Esempio n. 3
0
    def test_register_validation_existing_user(self):
        # Arrange
        from nflpool.viewmodels.register_viewmodel import RegisterViewModel
        from nflpool.data.account import Account

        data = {"email": "*****@*****.**"}
        # noinspection PyTypeChecker
        vm = RegisterViewModel()
        vm.from_dict(data)

        # Act
        target = "nflpool.services.account_service.AccountService.find_account_by_email"
        with unittest.mock.patch(target, return_value=Account()):
            vm.validate()

        # Assert:
        self.assertIsNotNone(vm.error)
        self.assertTrue("exist" in vm.error)
def test_register_validation_no_email():
    # Arrange
    from nflpool.viewmodels.register_viewmodel import RegisterViewModel

    data = {
        "first_name": "Paul",
        "last_name": "Cutler",
        "email": "",
        "password": "******",
        "confirm_password": "******",
    }
    # noinspection PyTypeChecker
    vm = RegisterViewModel()
    vm.from_dict(data)

    # Act
    vm.validate()

    # Assert:
    assert vm.error is not None
    assert "email" in vm.error is True
Esempio n. 5
0
    def test_register_validation_no_password(self):
        # Arrange
        from nflpool.viewmodels.register_viewmodel import RegisterViewModel

        data = {
            "first_name": "Paul",
            "last_name": "Cutler",
            "email": "*****@*****.**",
            "password": "",
            "confirm_password": "",
        }
        # noinspection PyTypeChecker
        vm = RegisterViewModel()
        vm.from_dict(data)

        # Act
        vm.validate()

        # Assert:
        self.assertIsNotNone(vm.error)
        self.assertTrue("password" in vm.error)
Esempio n. 6
0
 def register_get(self):
     vm = RegisterViewModel()
     return vm.to_dict()