示例#1
0
 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)
示例#3
0
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
示例#4
0
 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="")
示例#5
0
 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="")
示例#6
0
 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"])
示例#8
0
 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)
示例#9
0
 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)
示例#10
0
 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")))
示例#11
0
 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')
示例#12
0
 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)
示例#13
0
 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)
示例#14
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)
示例#15
0
 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"])
示例#16
0
 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)
示例#17
0
 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)
示例#18
0
 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)        
示例#19
0
 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")
示例#20
0
 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")
示例#21
0
 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)
示例#22
0
 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")
示例#23
0
 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))
示例#24
0
 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)
示例#25
0
 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)
示例#26
0
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)
示例#27
0
 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"))
示例#28
0
 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)
示例#29
0
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")
示例#30
0
 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)
示例#31
0
 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)