def testBlankProfileNameSignup(self): setCurrentUser("*****@*****.**", "Administrator") register_new_user('SiteAdmin') logoutCurrentUser() setCurrentUser("*****@*****.**", "NewUser1") self.assertRaises(DataModelException, register_new_user, '') self.assertRaises(ActionException, register_new_user, None)
def testChangeNarrativePlace(self): logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Place 1") place2 = create_place("Place 2") role1 = create_role("Role 1") role2 = create_role("Role 2") create_presence(role1, place1) create_presence(role2, place2) set_playing(role1) create_narrative(place1, "Narrative 1 from Role 1 at Place 1") rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] set_playing(role2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 0) set_playing(role1) create_presence(role1, place2) save_narrative(narrative["id"], place_id=place2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1) set_playing(role2) rset = get_first_narrative() self.assertEqual(len(rset["narrative"]), 1)
def setupLotsOfRoles(): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") role1 = create_role("Test Role 1") create_presence(role1, place1) role2 = create_role("Test Role 2") create_presence(role2, place1) create_role("Test Role 3") create_role("Test Role 4") create_role("Test Role 5") create_role("Test Role 6") create_role("Test Role 7") create_role("Test Role 8") create_role("Test Role 9") create_role("Test Role 10") create_role("Test Role 11") create_role("Test Role 12") create_role("Test Role 13") create_role("Test Role 14") setCurrentUser("*****@*****.**", "User2") register_new_user('User2') create_place("Test Place 2") create_role("Test Role 15") create_role("Test Role 16") return place1
def testBlankRoleName(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') roleid = create_role("Test Role 1") self.assertRaises(ActionException, create_role, None) self.assertRaises(DataModelException, create_role, "") self.assertRaises(DataModelException, save_role, roleid, name="")
def testBlankPlaceName(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1url = create_place("Test Place 1") self.assertRaises(ActionException, create_place, None) self.assertRaises(DataModelException, create_place, "") self.assertRaises(DataModelException, save_place, place1url, name="")
def testDeleteOccupiedPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") role1 = create_role("Test Role 1") create_presence(role1, place1) self.assertRaises(ActionException, delete_place, place1)
def testChangeNarrativeBody(self): logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Place 1") role1 = create_role("Role 1") create_presence(role1, place1) set_playing(role1) create_narrative(place1, "Narrative 1 from Role 1 at Place 1") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] self.assertEqual(narrative["role"], "Role 1") self.assertEqual(narrative["place"], "Place 1") self.assertEqual(narrative["body"], "Narrative 1 from Role 1 at Place 1") self.assertIsNotNone(narrative["created"]) self.assertIsNone(narrative["updated"]) save_narrative(narrative["id"], "Narrative 1 from Role 1 at Place 1 - updated") rset = get_first_narrative() self.assertEqual(rset["more"], False) self.assertEqual(len(rset["narrative"]), 1) narrative = rset["narrative"][0] self.assertEqual(narrative["role"], "Role 1") self.assertEqual(narrative["place"], "Place 1") self.assertEqual(narrative["body"], "Narrative 1 from Role 1 at Place 1 - updated") self.assertIsNotNone(narrative["created"]) self.assertIsNotNone(narrative["updated"])
def testDeleteAnotherUsersPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1url = create_place("Test Place 1") setCurrentUser("*****@*****.**", "User2") register_new_user('User2') self.assertEquals(len(get_my_places()), 0) self.assertRaises(DataModelException, delete_place, place1url)
def post(self): try: data = json.loads(str(self.request.body)) user_name = data["user_name"] if "user_name" in data.keys() else "" register_new_user(user_name) self.response.out.write(json.dumps({"next_page": "/"})) except Exception as e: handleError(self, e)
def testSavePresence(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") role1 = create_role("Test Role 1") create_presence(role1, place1) save_presence(role1, place1, ["broken nose", "busted leg"]) self.assertEqual(2, len(get_roles_in_place(place1)[0].get("damage")))
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_user_stub() self.testbed.init_datastore_v3_stub() self.testbed.init_memcache_stub() setCurrentUser("*****@*****.**", "Administrator") register_new_user('SiteAdmin')
def testDeleteUnoccupiedPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") place2 = create_place("Test Place 2") role1 = create_role("Test Role 1") create_presence(role1, place2) delete_place(place1)
def testDeletePlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') self.assertEquals(len(get_my_places()), 0) place1url = create_place("Test Place 1") self.assertEquals(len(get_my_places()), 1) delete_place(place1url) self.assertEquals(len(get_my_places()), 0)
def testDeleteAnotherUsersRole(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') role1url = create_role("Test Role 1") logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") register_new_user('User2') self.assertEquals(len(get_my_roles()), 1) self.assertRaises(DataModelException, delete_place, role1url)
def testWritableProperty(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1url = create_place("Test Place 1") self.assertTrue(get_place_properties(place1url)["writable"]) logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") register_new_user('User2') self.assertFalse(get_place_properties(place1url)["writable"])
def testCreatePresenceInSomeoneElsesPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") register_new_user('User2') role1 = create_role("Test Role 1") self.assertRaises(DataModelException, create_presence, role1, place1)
def testDeleteRoleWithPresence(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") self.assertEqual(len(get_roles_in_place(place1)), 0) role1 = create_role("Test Role 1") create_presence(role1, place1) self.assertEqual(len(get_roles_in_place(place1)), 1) self.assertRaises(ActionException, delete_role, role1)
def testLoginAndOut(self): setCurrentUser("*****@*****.**", "Administrator") self.assertRaises(NoUserNameException, _get_my_profile) logoutCurrentUser() setCurrentUser("*****@*****.**", "Administrator") self.assertRaises(NoUserNameException, _get_my_profile) register_new_user('AnotherUserTwo') logoutCurrentUser() setCurrentUser("*****@*****.**", "Administrator") self.assertIsInstance(_get_my_profile(), Profile)
def testSaveAnotherUsersRole(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') roleid = create_role("Test Role 1") save_role(roleid, "New Role name") logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") self.assertRaises(DataModelException, save_role, roleid, "Should Fail") register_new_user('User2') self.assertRaises(DataModelException, save_role, roleid, "Should Fail")
def testSaveAnotherUsersPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1url = create_place("Test Place 1") save_place(place1url, name="This is a new place name") logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") self.assertRaises(DataModelException, save_place, place1url, "Should Fail") register_new_user('User2') self.assertRaises(DataModelException, save_place, place1url, "Should Fail")
def testDeletePresenceFromSomeoneElsesPlace(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") role1 = create_role("Test Role 1") pres1 = create_presence(role1, place1) logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") register_new_user('User2') self.assertRaises(ActionException, delete_presence, role1, place1)
def testSetPlaying(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') role1 = create_role("Test Role 1") role2 = create_role("Test Role 2") set_playing(role1) self.assertEqual(get_my_roles()[0]["name"], "Test Role 1") set_playing(role2) self.assertEqual(get_my_roles()[1]["name"], "Test Role 2") set_playing(None) self.assertEqual(get_my_roles()[2]["name"], "User1")
def testIsPresent(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") place2 = create_place("Test Place 2") role1 = create_role("Test Role 1") role2 = create_role("Test Role 2") create_presence(role1, place1) create_presence(role2, place2) self.assertTrue(is_present(role1, place1)) self.assertFalse(is_present(role1, place2)) self.assertTrue(is_present(role2, place2)) self.assertFalse(is_present(role2, place1))
def testGetProfiles(self): self.assertRaises(ActionException, get_profiles, None) self.assertEqual(len(get_profiles('a')), 0) setCurrentUser("*****@*****.**", "Administrator") register_new_user('Admin') logoutCurrentUser() setCurrentUser("*****@*****.**", "User1") register_new_user('User1') logoutCurrentUser() self.assertEqual(len(get_profiles('a')), 1) self.assertEqual(len(get_profiles('u')), 1) self.assertEqual(len(get_profiles('A')), 1) self.assertEqual(len(get_profiles('U')), 1)
def testCreatePresence(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') place1 = create_place("Test Place 1") place2 = create_place("Test Place 2") role1 = create_role("Test Role 1") self.assertEqual(len(get_roles_in_place(place1)), 0) self.assertEqual(len(get_roles_in_place(place2)), 0) create_presence(role1, place1) self.assertEqual(len(get_roles_in_place(place1)), 1) self.assertEqual(len(get_roles_in_place(place2)), 0) create_presence(role1, place2) self.assertEqual(len(get_roles_in_place(place1)), 1) self.assertEqual(len(get_roles_in_place(place2)), 1)
def homepage(): form = RegisterForm() if request.method == 'POST': print(form.errors) try: _, duplicate_user = actions.register_new_user( form.email.data, form.postcode.data) if duplicate_user: flash( f" We seem to have you registered already, but we've resent your confirmation email!" ) else: flash( f"We've sent a confirmation email to {form.email.data}, please check your inbox!" ) return redirect(url_for('api.registered')) except SMTPRecipientsRefused: if not form.email.data: flash(f"Did you forget to enter an email?") else: flash( f"We couldn't send an email to {form.email.data}, please check and try again!", category="warning") except IndexError: if not form.postcode.data: flash(f"Did you forget to enter a location?") else: flash( f" We couldn't find a location for {form.postcode.data}, please check and try again!" ) return render_template('register.html', title='Weather Window', form=form, GOOGLE_API_KEY=constants.GOOGLE_API_KEY)
def testWritableProperty(self): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') create_role("Role 1") myroles1 = get_my_roles() self.assertTrue(myroles1[0].get("writable")) self.assertTrue(myroles1[1].get("writable")) place1 = create_place("Place 1") create_presence(myroles1[1]["id"], place1) logoutCurrentUser() setCurrentUser("*****@*****.**", "User2") register_new_user('User2') create_role("Role 2") myroles2 = get_my_roles() self.assertTrue(myroles2[0].get("writable")) self.assertTrue(myroles2[1].get("writable")) myroles3 = get_roles_in_place(place1) self.assertFalse(myroles3[0].get("writable"))
def testFirstSignup(self): setCurrentUser("*****@*****.**", "Administrator") '''Should fail repeatedly with a NoUserNameException''' self.assertRaises(NoUserNameException, _get_my_profile) self.assertRaises(NoUserNameException, _get_my_profile) '''Should create the Site Administrator with its own place for template Roles''' register_new_user('SiteAdmin') '''Should have a SiteAdmin now''' self.assertIsInstance(_get_my_profile(), SiteMasterProfile) self.assertEquals(SiteMasterProfile.query().count(), 1) self.assertEquals(Profile.query().count(), 1) '''Should be called whatever it was set up as''' self.assertEquals('SiteAdmin', get_my_profile_name()) '''Check number of entities''' self.assertEquals(1, SiteMasterProfile.query().count()) '''Should just fail with a NoUserException if logged out''' logoutCurrentUser() self.assertRaises(NoUserException, _get_my_profile)
def setupLotsOfPlaces(): setCurrentUser("*****@*****.**", "User1") register_new_user('User1') create_place("Test Place 1") create_place("Test Place 2") create_place("Test Place 3") create_place("Test Place 4") create_place("Test Place 5") create_place("Test Place 6") create_place("Test Place 7") create_place("Test Place 8") create_place("Test Place 9") create_place("Test Place 10") create_place("Test Place 11") create_place("Test Place 12") create_place("Test Place 13") create_place("Test Place 14") setCurrentUser("*****@*****.**", "User2") register_new_user('User2') create_place("Test Place 15") create_place("Test Place 16")
def testChangingSomeoneElsesProfile(self): setCurrentUser("*****@*****.**", "Administrator") register_new_user('SiteAdmin') site_admin_id = _get_my_profile().key.urlsafe() logoutCurrentUser() setCurrentUser("*****@*****.**", "NewUser1") register_new_user('NewUserOne') new_user_1_id = _get_my_profile().key.urlsafe() role_1_id = create_role("Test Role 1") set_playing(role_1_id) logoutCurrentUser() setCurrentUser("*****@*****.**", "NewUser2") ''' This code simulates an attack against the Model, using the Google Account ID to load another users Profile ''' profile = ndb.Key(urlsafe=new_user_1_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) profile = ndb.Key(urlsafe=site_admin_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) register_new_user('NewUserTwo') ''' This code simulates an attack against the Model, using the Google Account ID to load another users Profile ''' profile = ndb.Key(urlsafe=new_user_1_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put) profile = ndb.Key(urlsafe=site_admin_id).get() profile.playing = ndb.Key(urlsafe=role_1_id) self.assertRaises(DataModelException, profile.put)
def testNextSignup(self): setCurrentUser("*****@*****.**", "Administrator") self.assertRaises(NoUserNameException, _get_my_profile) self.assertRaises(NoUserNameException, _get_my_profile) register_new_user('SiteAdmin') self.assertIsInstance(_get_my_profile(), Profile) self.assertEquals('SiteAdmin', get_my_profile_name()) self.assertEquals(1, SiteMasterProfile.query().count()) self.assertEquals(1, Profile.query().count()) logoutCurrentUser() self.assertRaises(NoUserException, _get_my_profile) setCurrentUser("*****@*****.**", "NewUser1") self.assertRaises(NoUserNameException, _get_my_profile) self.assertRaises(NoUserNameException, _get_my_profile) '''Should create a GameMaster for this new profile with its own Place for private conversations''' register_new_user('NewUserOne') '''Should have an profile now''' self.assertIsInstance(_get_my_profile(), Profile) '''Should be called whatever it was set up as''' self.assertEquals('NewUserOne', get_my_profile_name()) self.assertEquals(2, Profile.query().count()) logoutCurrentUser() self.assertRaises(NoUserException, _get_my_profile)