def test_groups_group_selected_no_topic_selected(self): group = FacilityGroup(name="Test Group", facility=self.facility) group.save() self.browser_login_admin() self.browse_to(self.reverse("tabular_view") + "?group=" + group.id) self.browser.find_element_by_css_selector('#error_message') self.assertEqual(self.browser.find_element_by_css_selector('#error_message').text, "Please select a topic above.", "Error message with no topic selected.")
def test_groups_group_selected_topic_selected_no_users(self): group = FacilityGroup(name="Test Group", facility=self.facility) group.save() self.browser_login_admin() self.browse_to(self.reverse("tabular_view") + "?topic=addition-subtraction&group=" + group.id) self.browser.find_element_by_css_selector('#error_message') self.assertEqual(self.browser.find_element_by_css_selector('#error_message').text, "No users found.", "Error message with no users available.")
def handle(self, *args, **options): facility = Facility(name="Wilson Elementary") facility.save() group1 = FacilityGroup(facility=facility, name="Class 4E") group1.full_clean() group1.save() group2 = FacilityGroup(facility=facility, name="Class 5B") group2.full_clean() group2.save() facilityusers = [] for i in range(0,10): newuser1 = FacilityUser(facility=facility, username=usernames[i], first_name=firstnames[i], last_name=lastnames[i], group=group1) if settings.DEBUG: newuser1.set_password(hashed_password = hashed_blah)#"blah") else: newuser1.set_password("blah") newuser1.full_clean() newuser1.save() facilityusers.append(newuser1) newuser2 = FacilityUser(facility=facility, username=usernames[i+10], first_name=firstnames[i+10], last_name=lastnames[i+10], group=group2) if settings.DEBUG: newuser2.set_password(hashed_password = hashed_blah)#"blah") else: newuser2.set_password("blah") newuser2.full_clean() newuser2.save() facilityusers.append(newuser2) for topic in topics: exercises = get_topic_exercises(topic_id=topic) exercises_a = [random.random() for i in range(len(exercises))] exercises_b = [float(i) / len(exercises) for i in range(len(exercises))] for i, user in enumerate(facilityusers): for j, exercise in enumerate(exercises): sig = sigmoid(proficiency[i], exercises_a[j], exercises_b[j]) if random.random() < 0.05 * (1-sig) and j > 2: break if random.random() < 0.15: continue attempts = random.random() * 40 + 10 streak_progress = max(10, min(100, 10 * random.random() + 10 * attempts * sig)) print int(attempts), int(streak_progress), user.first_name, exercise["name"] log = ExerciseLog(user=user, exercise_id=exercise["name"], attempts=attempts, streak_progress=streak_progress) log.full_clean() log.save()
def test_success_with_group(self): group = FacilityGroup(name="Test Group", facility=self.facility) group.save() FacilityUser(username="******", password="******", facility=self.facility, group=group).save() self.browser_login_admin() self.browse_to(self.reverse("tabular_view") + "?topic=addition-subtraction&group=" + group.id) with self.assertRaises(NoSuchElementException): self.browser.find_element_by_css_selector('#error_message')
def test_users_out_of_group(self): group = FacilityGroup(name="Test Group", facility=self.facility) group.save() FacilityUser(username="******", password="******", facility=self.facility).save() self.browser_login_admin() self.browse_to(self.reverse("tabular_view") + "?topic=addition-subtraction&group=" + group.id) self.browser.find_element_by_css_selector('#error_message') self.assertEqual(self.browser.find_element_by_css_selector('#error_message').text, "No users found.", "Error message with no users available.")
def test_groups_no_group_selected(self): FacilityGroup(name="Test Group", facility=self.facility).save() self.browser_login_admin() self.browse_to(url_name="tabular_view") self.browser.find_element_by_css_selector('#error_message') self.assertEqual( self.browser.find_element_by_css_selector('#error_message').text, "Please select a group above.", "Error message with no group selected.")
def setUp(self): self.facility = Facility(name="Test Facility") self.facility.save() self.group = FacilityGroup(facility=self.facility, name="Test Class") self.group.full_clean() self.group.save() self.user = FacilityUser(facility=self.facility, username="******", first_name="Firstname", last_name="Lastname", group=self.group) self.user.clear_text_password = "******" # not used anywhere but by us, for testing purposes self.user.set_password(self.user.clear_text_password) self.user.full_clean() self.user.save()
def generate_fake_facility_groups(names=("Class 4E", "Class 5B"), facilities=None): """Add the given fake facility groups to the given fake facilities""" if not facilities: facilities = generate_fake_facilities() facility_groups = [] for facility in facilities: for name in names: found_facility_groups = FacilityGroup.objects.filter(facility=facility, name=name) if found_facility_groups: facility_group = found_facility_groups[0] logging.info("Retrieved facility group '%s'" % name) else: facility_group = FacilityGroup(facility=facility, name=name) facility_group.full_clean() facility_group.save() logging.info("Created facility group '%s'" % name) facility_groups.append(facility_group) return (facility_groups, facilities)
def generate_fake_facility_groups( names=("Class 4E", "Class 5B"), facilities=None): """Add the given fake facility groups to the given fake facilities""" if not facilities: facilities = generate_fake_facilities() facility_groups = [] for facility in facilities: for name in names: try: facility_group = FacilityGroup.objects.get(facility=facility, name=name) logging.info("Retrieved facility group '%s'" % name) except FacilityGroup.DoesNotExist as e: facility_group = FacilityGroup(facility=facility, name=name) facility_group.full_clean() facility_group.save() logging.info("Created facility group '%s'" % name) facility_groups.append(facility_group) return (facility_groups, facilities)
def test_unicode_string(self): # Dependencies dev = Device.get_own_device() self.assertNotIn(unicode(dev), "Bad Unicode data", "Device: Bad conversion to unicode.") fac = Facility(name=self.korean_string) fac.save() self.assertNotIn(unicode(fac), "Bad Unicode data", "Facility: Bad conversion to unicode.") fg = FacilityGroup(facility=fac, name=self.korean_string) fg.save() self.assertNotIn(unicode(fg), "Bad Unicode data", "FacilityGroup: Bad conversion to unicode.") user = FacilityUser( facility=fac, group=fg, first_name=self.korean_string, last_name=self.korean_string, username=self.korean_string, notes=self.korean_string, password=self.korean_string, ) user.save() self.assertNotIn(unicode(user), "Bad Unicode data", "FacilityUser: Bad conversion to unicode.") known_classes = [ExerciseLog, UserLog, UserLogSummary, VideoLog] # elog = ExerciseLog(user=user, exercise_id=self.korean_string) self.assertNotIn( unicode(elog), "Bad Unicode data", "ExerciseLog: Bad conversion to unicode (before saving).") elog.save() self.assertNotIn( unicode(elog), "Bad Unicode data", "ExerciseLog: Bad conversion to unicode (after saving).") vlog = VideoLog(user=user, youtube_id=self.korean_string) self.assertNotIn( unicode(vlog), "Bad Unicode data", "VideoLog: Bad conversion to unicode (before saving).") vlog.save() self.assertNotIn( unicode(vlog), "Bad Unicode data", "VideoLog: Bad conversion to unicode (after saving).") ulog = UserLog(user=user) self.assertNotIn(unicode(ulog), "Bad Unicode data", "UserLog: Bad conversion to unicode.") ulogsum = UserLogSummary( user=user, device=dev, activity_type=1, start_datetime=datetime.now(), end_datetime=datetime.now(), ) self.assertNotIn(unicode(ulogsum), "Bad Unicode data", "UserLogSummary: Bad conversion to unicode.")