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_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))
Exemple #7
0
    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))