def test_level_sharing_with_no_school(self): teacher1, email1, password1 = signup_teacher_directly() teacher2, _, _ = signup_teacher_directly() self.login(email1, password1) level_id = create_save_level(teacher1) sharing_info1 = json.loads(self.get_sharing_information(level_id).getvalue()) assert_that(len(sharing_info1["teachers"]), equal_to(0))
def test_level_sharing_with_no_school(self): teacher1, email1, password1 = signup_teacher_directly() teacher2, _, _ = signup_teacher_directly() self.login(email1, password1) level_id = create_save_level(teacher1) sharing_info1 = json.loads( self.get_sharing_information(level_id).getvalue()) assert_that(len(sharing_info1["teachers"]), equal_to(0))
def test_anonymous_level_saving_school_student(self): _, email, password = signup_teacher_directly() create_organisation_directly(email) _, class_name, access_code = create_class_directly(email) student_name, student_password, _ = create_school_student_directly( access_code) self.student_login(student_name, access_code, student_password) url = reverse("save_level_for_editor") data1 = { u"origin": u'{"coordinate":[3,5],"direction":"S"}', u"pythonEnabled": False, u"decor": [], u"blocklyEnabled": True, u"blocks": [ { u"type": u"move_forwards" }, { u"type": u"turn_left" }, { u"type": u"turn_right" }, ], u"max_fuel": u"50", u"pythonViewEnabled": False, u"character": u"3", u"name": u"abc", u"theme": 1, u"anonymous": True, u"cows": u"[]", u"path": u'[{"coordinate":[3,5],"connectedNodes":[1]},{"coordinate":[3,4],' u'"connectedNodes":[0]}]', u"traffic_lights": u"[]", u"destinations": u"[[3,4]]", } response = self.client.post(url, {"data": json.dumps(data1)}) assert_that(response.status_code, equal_to(200)) sharing_info1 = json.loads( self.get_sharing_information(json.loads( response.content)["id"]).getvalue()) assert_that(sharing_info1["teacher"]["shared"], equal_to(True)) assert_that(len(mail.outbox), equal_to(0))
def test_level_loading(self): teacher1, email1, password1 = signup_teacher_directly() self.login(email1, password1) level_id = create_save_level(teacher1) url = reverse("load_level_for_editor", kwargs={"levelID": level_id}) response = self.client.get(url) assert_that(response.status_code, equal_to(200))
def test_level_can_only_be_shared_by_owner(self): teacher1, email1, password1 = signup_teacher_directly() teacher2, email2, password2 = signup_teacher_directly() self.login(email1, password1) level_id = create_save_level(teacher1) school1 = create_school() add_teacher_to_school(teacher1, school1) self.logout() self.login(email2, password2) url = reverse("share_level_for_editor", args=[level_id]) data = {u"recipientIDs[]": [teacher2.id], u"action": ["share"]} response = self.client.post(url, {"data": data}) assert_that(response.status_code, equal_to(403))
def test_level_saving_school_student(self): _, email, password = signup_teacher_directly() create_organisation_directly(email) _, class_name, access_code = create_class_directly(email) student_name, student_password, _ = create_school_student_directly( access_code) self.student_login(student_name, access_code, student_password) url = reverse('save_level_for_editor') data1 = { u'origin': u'{"coordinate":[3,5],"direction":"S"}', u'pythonEnabled': False, u'decor': [], u'blocklyEnabled': True, u'blocks': [{ u'type': u'move_forwards' }, { u'type': u'turn_left' }, { u'type': u'turn_right' }], u'max_fuel': u'50', u'pythonViewEnabled': False, u'character': u'3', u'name': u'abc', u'theme': 1, u'anonymous': False, u'cows': u'[]', u'path': u'[{"coordinate":[3,5],"connectedNodes":[1]},{"coordinate":[3,4],' u'"connectedNodes":[0]}]', u'traffic_lights': u'[]', u'destinations': u'[[3,4]]' } response = self.client.post(url, {'data': json.dumps(data1)}) assert_that(response.status_code, equal_to(200)) sharing_info1 = json.loads( self.get_sharing_information(json.loads( response.content)['id']).getvalue()) assert_that(sharing_info1['teacher']['shared'], equal_to(True)) assert_that(len(mail.outbox), equal_to(1))
def test_level_saving_school_student(self): _, email, password = signup_teacher_directly() create_organisation_directly(email) _, class_name, access_code = create_class_directly(email) student_name, student_password, _ = create_school_student_directly(access_code) self.student_login(student_name, access_code, student_password) url = reverse("save_level_for_editor") data1 = { u"origin": u'{"coordinate":[3,5],"direction":"S"}', u"pythonEnabled": False, u"decor": [], u"blocklyEnabled": True, u"blocks": [ {u"type": u"move_forwards"}, {u"type": u"turn_left"}, {u"type": u"turn_right"}, ], u"max_fuel": u"50", u"pythonViewEnabled": False, u"character": u"3", u"name": u"abc", u"theme": 1, u"anonymous": False, u"cows": u"[]", u"path": u'[{"coordinate":[3,5],"connectedNodes":[1]},{"coordinate":[3,4],' u'"connectedNodes":[0]}]', u"traffic_lights": u"[]", u"destinations": u"[[3,4]]", } response = self.client.post(url, {"data": json.dumps(data1)}) assert_that(response.status_code, equal_to(200)) sharing_info1 = json.loads( self.get_sharing_information(json.loads(response.content)["id"]).getvalue() ) assert_that(sharing_info1["teacher"]["shared"], equal_to(True)) assert_that(len(mail.outbox), equal_to(1))