def application_instances(self, pyramid_request): """Add some "noise" application instances.""" # Add some "noise" application instances to the DB for every test, to # make the tests more realistic. application_instances = [ ApplicationInstance( consumer_key="NOISE_CONSUMER_KEY_1", developer_key="NOISE_DEVELOPER_KEY_1", lms_url="NOISE_LMS_URL_1", shared_secret="NOISE_SHARED_SECRET_1", requesters_email="NOISE_EMAIL_1", ), ApplicationInstance( consumer_key="NOISE_CONSUMER_KEY_2", developer_key="NOISE_DEVELOPER_KEY_2", lms_url="NOISE_LMS_URL_2", shared_secret="NOISE_SHARED_SECRET_2", requesters_email="NOISE_EMAIL_2", ), ApplicationInstance( consumer_key="NOISE_CONSUMER_KEY_3", developer_key="NOISE_DEVELOPER_KEY_3", lms_url="NOISE_LMS_URL_3", shared_secret="NOISE_SHARED_SECRET_3", requesters_email="NOISE_EMAIL_3", ), ] pyramid_request.db.add_all(application_instances) return application_instances
def test_provisioning_can_be_disabled(self, db_session): application_instance = ApplicationInstance() application_instance.provisioning = False db_session.add(application_instance) db_session.flush() assert application_instance.provisioning is False
def test_provisioning_is_not_nullable(self, db_session): application_instance = ApplicationInstance() application_instance.provisioning = None db_session.add(application_instance) db_session.flush() assert application_instance.provisioning is not None
def test_get_returns_the_matching_ApplicationInstance( self, db_session, application_instance): db_session.add(application_instance) assert (ApplicationInstance.get_by_consumer_key( db_session, application_instance.consumer_key) == application_instance)
def create_application_instance(request): """Create application instance in the databse and respond with key and secret.""" # Default developer_key and developer_secret to None rather than letting # them be empty strings. developer_key = request.params["developer_key"].strip() developer_secret = request.params["developer_secret"].strip() # If either one of developer_key or developer_secret is missing, then we # don't save the other one either. if not developer_key or not developer_secret: developer_key = None developer_secret = None instance = ApplicationInstance.build_from_lms_url( request.params["lms_url"], request.params["email"], developer_key, developer_secret, request.registry.settings["aes_secret"], settings={ "canvas": { "sections_enabled": bool(developer_key and request.feature("section_groups")) } }, ) request.db.add(instance) return { "consumer_key": instance.consumer_key, "shared_secret": instance.shared_secret, }
def test_provisioning_defaults_to_True(self, db_session): application_instance = ApplicationInstance() db_session.add(application_instance) db_session.flush() assert application_instance.provisioning is True
def application_instance(self): """Return the ApplicationInstance that the test GroupInfo belongs to.""" return ApplicationInstance( consumer_key="test_consumer_key", shared_secret="test_shared_secret", lms_url="test_lms_url", requesters_email="test_requesters_email", )
def application_instance(self): """Return an ApplicationInstance with minimal required attributes.""" return ApplicationInstance( consumer_key="TEST_CONSUMER_KEY", shared_secret="TEST_SHARED_SECRET", lms_url="TEST_LMS_URL", requesters_email="TEST_EMAIL", )
def application_instance(self, db_session): """Return the ApplicationInstance that the GradingInfos belong to.""" application_instance = ApplicationInstance( consumer_key="test_consumer_key", shared_secret="test_shared_secret", lms_url="test_lms_url", requesters_email="test_requesters_email", ) db_session.add(application_instance) return application_instance
def test_application_instance(self, pyramid_request): application_instance = ApplicationInstance( consumer_key=pyramid_request.lti_user.oauth_consumer_key, developer_key="TEST_DEVELOPER_KEY", lms_url="TEST_LMS_URL", shared_secret="TEST_SHARED_SECRET", requesters_email="TEST_EMAIL", ) pyramid_request.db.add(application_instance) return application_instance
def application_instance(db_session, pyramid_request): """Return the ApplicationInstance that the test OAuth2Token's belong to.""" application_instance = ApplicationInstance( consumer_key=pyramid_request.lti_user.oauth_consumer_key, shared_secret="test_shared_secret", lms_url="test_lms_url", requesters_email="test_requesters_email", ) db_session.add(application_instance) return application_instance
def test_it_persists_application_instance(self, db_session): initial_count = db_session.query(ApplicationInstance).count() instance = ApplicationInstance( consumer_key="TEST_CONSUMER_KEY", shared_secret="TEST_SHARED_SECRET", lms_url="TEST_LMS_URL", ) db_session.add(instance) new_count = db_session.query(ApplicationInstance).count() assert new_count == initial_count + 1
def application_instance(self, db_session): # Load app so we create the instance after the DB has been truncated application_instance = ApplicationInstance( consumer_key=self.OAUTH_CONSUMER_KEY, shared_secret=self.SHARED_SECRET, lms_url="test_lms_url", requesters_email="test_requesters_email", ) db_session.add(application_instance) db_session.commit() return application_instance
def test_get_returns_None_if_theres_no_matching_ApplicationInstance( self, db_session): assert (ApplicationInstance.get_by_consumer_key( db_session, "unknown_consumer_key") is None)
def build_ai_from_pair(pair): return ApplicationInstance.build_from_lms_url( pair[0], pair[1], None, None, None, None )