예제 #1
0
    def test_should_allow_confirmation_by_sending_email_if_user_is_not_confirmed(self, requests_mock):
        self.db.users.insert(test_user(confirmed=False))

        # When: Confirm user
        rv = self.confirm_test_user()

        # Then
        self.assertEqual(rv.status_code, 200)
        assert_mailgun(requests_mock, EMAIL_ADDRESS, "Warsjawa - additional informations")
예제 #2
0
    def test_should_resend_email_with_new_key_if_is_not_confirmed(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=False))

        # When: Post to users
        self.register_test_user()

        # Then
        assert_mailgun(requests_mock, EMAIL_ADDRESS, "Welcome to Warsjawa!")
예제 #3
0
    def test_should_deny_confirmation_by_sending_email_if_user_already_confirmed(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=True))

        # When: Confirm user
        rv = self.confirm_test_user()

        # Then Return code is 304 and e-mail is sent
        self.assertEqual(rv.status_code, 304)
        assert_mailgun(requests_mock, EMAIL_ADDRESS, "You can not confirm twice")
예제 #4
0
    def test_should_send_deny_email_if_already_registered(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=True))

        # When: Post to users
        rv = self.register_test_user()

        # Then key is without change
        self.assertEqual(rv.status_code, 304)
        assert_mailgun(requests_mock, EMAIL_ADDRESS, "We've got a problem here !")
예제 #5
0
    def test_should_not_update_key_in_database_if_already_registered(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=True))

        # When: Post to users
        self.register_test_user()

        # Then key is without change
        self.assertEqual(self.db.users.count(), 1)
        user_in_db = self.db.users.find_one()
        self.assertDictContainsSubset(
            {"email": EMAIL_ADDRESS, "name": NAME, "key": TEST_KEY},
            user_in_db)
예제 #6
0
    def test_should_allow_confirmation_by_changing_state_if_user_is_not_confirmed(self, requests_mock):
        self.db.users.insert(test_user(confirmed=False))

        # When: Confirm user
        self.confirm_test_user()

        # Then: User is confirmed
        self.assertEqual(self.db.users.count(), 1)
        user_in_db = self.db.users.find_one()
        self.assertDictContainsSubset(
            {"email": EMAIL_ADDRESS, "name": NAME, "key": TEST_KEY,
             "isConfirmed": True},
            user_in_db)
예제 #7
0
    def test_should_update_key_in_database_if_already_registered(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=False))

        # When: Post to users
        self.register_test_user()

        # Then Key is changed
        self.assertEqual(self.db.users.count(), 1)
        user_in_db = self.db.users.find_one()
        self.assertDictContainsSubset({"email": EMAIL_ADDRESS, "name": NAME},
                                      user_in_db)
        self.assertIsNotNone(user_in_db["key"])
        self.assertIsNot(user_in_db["key"], TEST_KEY)
예제 #8
0
    def test_should_deny_confirmation_by_not_changing_the_key_if_user_already_confirmed(self, requests_mock):
        # Given: database
        self.db.users.insert(test_user(confirmed=True))

        # When: Confirm user
        self.confirm_test_user()

        # Then Key is without change
        self.assertEqual(self.db.users.count(), 1)
        user_in_db = self.db.users.find_one()
        self.assertDictContainsSubset(
            {"email": EMAIL_ADDRESS, "name": NAME, "key": TEST_KEY,
             "isConfirmed": True},
            user_in_db)