def kafka_test(self, mocker): kafka_test = KafkaTest() self.producer_stub = mocker.stub() self.producer_stub.send = mocker.stub() self.consumer_stub = mocker.stub() self.consumer_stub.poll = poll kafka_test.configure_producer('topic', self.producer_stub) kafka_test.configure_consumer(self.consumer_stub) return kafka_test
def test_password_reset_token_works(self, test_user, client, mocker): emails.send_email = mocker.stub() response = client.post( auth_url_prefix + "/request_password_reset", data=dict(email=test_user.email), follow_redirects=True, ) emails.send_email.assert_called_once() email_body = emails.send_email.call_args[1]["body"] address_with_token = email_body.split("localhost")[1].split(" >")[0] print(email_body.split("localhost")[1]) new_password = "******" assert test_user.check_password(new_password) is False client.get(address_with_token, follow_redirects=True) response = client.post( address_with_token, data=dict(password=new_password, password_repeat=new_password), follow_redirects=True, ) assert test_user.check_password(new_password) is True
def test_next_session(self, several_users, test_session, mocker): admin.broadcast_session_update = mocker.stub() assert len(clubsessions.read_all()) == 1 admin.schedule_next_session_via_api(TestingConfig.ADMIN_KEY) assert len(clubsessions.read_all()) == 2
def test_delete_session(self, test_session, mocker): admin.broadcast_session_update = mocker.stub() session_id = test_session.session_id admin.delete_session(session_id) assert clubsessions.get_by_id(session_id) is None
def test_send_sessions(self, test_user, test_session, mocker): routes.current_user = test_user routes.emit = mocker.stub() routes.send_sessions() routes.emit.assert_called_once()
def test_update_existing_user(self, test_user, mocker): new_offset = 999 data = { "email": test_user.email, "eaten_offset": new_offset, "send_welcome_email": False, } admin.broadcast_session_update = mocker.stub() admin.send_email = mocker.stub() admin.create_or_update_user(data) admin.broadcast_session_update.assert_called_once() admin.send_email.assert_not_called() updated_user = users.get_user_by_email(test_user.email) assert updated_user.eaten_offset == new_offset
def test_create_user(self, mocker): data = { "username": "******", "email": "*****@*****.**", "eaten_offset": 1, "send_welcome_email": False, } admin.broadcast_session_update = mocker.stub() admin.send_email = mocker.stub() admin.create_or_update_user(data) admin.broadcast_session_update.assert_called_once() admin.send_email.assert_not_called() new_user = users.get_user_by_email(data["email"]) assert new_user.username == data["username"]
def test_leave(self, test_user, test_session, mocker): routes.broadcast_session_update = mocker.stub() routes.current_user = test_user routes.leave_session(test_session.session_id) assert test_user not in test_session.participants routes.broadcast_session_update.assert_called_once()
def test_bake_reminder_needs_token(self, client, mocker): reminders.send_email = mocker.stub() token = "bad_key" response = client.get(f"/api/bakereminder/{token}") assert response.data == b"authorization invalid" reminders.send_email.assert_not_called()
def test_assert_next_sends_and_receive_times_out_exception( self, kafka_test, mocker): self.consumer_stub.poll = mocker.stub() self.consumer_stub.poll.return_value = {"tp": []} with pytest.raises(Exception, match="Failed to consume message"): kafka_test.configure_consumer(self.consumer_stub) kafka_test.send_and_assert("key", "test_message", "test_message_transformed") self.producer_stub.send.assert_called_once()
def test_create_session(self, several_users, mocker): data = {"date": "3020-02-01"} admin.broadcast_session_update = mocker.stub(name="broadcast") admin.create_session(data) admin.broadcast_session_update.assert_called_once() all_sessions = clubsessions.read_all() assert data["date"] in [session["date"] for session in all_sessions]
def test_session_reminder_deletes_if_no_bakers(self, test_session, client, mocker): reminders.send_email = mocker.stub() session_id = test_session.session_id token = TestingConfig.ADMIN_KEY response = client.get(f"/api/sessionreminder/{token}") assert clubsessions.get_by_id(session_id) is None reminders.send_email.assert_not_called()
def test_force_baker(self, test_session, test_user, mocker): admin.broadcast_session_update = mocker.stub() assert test_user not in test_session.bakers data = { "baker_id": test_user.user_id, "session_id": test_session.session_id } admin.force_baker(data) assert test_user in test_session.bakers
def test_token_email(self, test_user, mocker, client): emails.send_email = mocker.stub() response = client.post( auth_url_prefix + "/request_password_reset", data=dict(email=test_user.email), follow_redirects=True, ) emails.send_email.assert_called_once() assert b"We sent you an email to reset your password!" in response.data
def test_become_baker(self, test_session, test_user, mocker): routes.broadcast_session_update = mocker.stub() assert test_user not in test_session.bakers routes.current_user = test_user routes.become_baker(test_session.session_id) assert test_user in test_session.bakers assert test_user in test_session.participants routes.broadcast_session_update.assert_called_once()
def test_session_reminder(self, test_user, test_session, client, mocker): test_session.bakers.append(test_user) reminders.send_email = mocker.stub() email_spy = mocker.spy(reminders, "send_session_reminder_email") token = TestingConfig.ADMIN_KEY response = client.get(f"/api/sessionreminder/{token}") assert "1" in str(response.data) email_spy.assert_called_once() reminders.send_email.assert_called_once()
def test_bake_reminder(self, several_users, client, mocker): upcoming_date = datetime.date.today() + datetime.timedelta(days=3) clubsessions.create(date=upcoming_date) reminders.send_email = mocker.stub() email_spy = mocker.spy(reminders, "send_bake_reminder_email") token = TestingConfig.ADMIN_KEY response = client.get(f"/api/bakereminder/{token}") assert "1" in str(response.data) email_spy.assert_called_once() reminders.send_email.assert_called_once()
def test_wc2013_all(self, mocker): callback = mocker.stub(name='game detected fn') self.parser.setGameFinishedCallback(callback) self.parser.parse( self.lexer.tokenize(""" [Event "WCh 2013"] [Round "1"] 1. d4 Nf6 2. c4 e6 1/2-1/2 [Event "WCh 2013"] [Round "2"] 1. d4 Nf6 2. c4 e6 1/2-1/2 """)) assert (2 == callback.call_count)
def test_callback_object(self, mocker): callback = mocker.stub(name='callback fn') self.parser.setMovementDetectedCallback(callback) self.parser.parse(self.lexer.tokenize('1. e4')) assert (1 == callback.call_count)
def test_callback(self, mocker): callback = mocker.stub(name='callback fn') self.parser.setMovementDetectedCallback(callback) self.parser.parse(self.lexer.tokenize('1. e4 e5 2. Nc3 B3a1 3. a3')) assert (5 == callback.call_count)
def test_remove_bakers(self, several_users, test_session, mocker): admin.broadcast_session_update = mocker.stub() admin.remove_bakers(test_session.session_id) assert len(test_session.bakers.all()) == 0
def test_cannot_create_past_session(self, several_users, mocker): data = {"date": "2020-02-01"} admin.broadcast_session_update = mocker.stub(name="broadcast") with pytest.raises(admin.InvalidDateError): admin.create_session(data)