def test_move_in_custom_traffic_group(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" traffic_group = user.TrafficGroup.q.first() new_user, _ = UserHelper.create_user(test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group=config.member_group) UserHelper.move_in(new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=traffic_group.id) self.assertIn(traffic_group, new_user.active_traffic_groups())
def test_user_create(self): # needs: new_user, self.user (the initiating data), # self.config.member_group new_user, _ = UserHelper.create_user( self.user.name, self.user.login, self.user.email, self.user.birthdate, processor=self.processing_user, groups=[self.config.member_group], address=self.room.address, ) assert new_user.name == self.user.name assert new_user.login == self.user.login assert new_user.email == self.user.email # TODO fix signature and check for explicitly supplied address. # assert new_user.address == config.dummy_address assert_account_name(new_user.account, f"User {new_user.id}") assert_membership_groups(new_user.active_memberships(), [self.config.member_group]) assert new_user.unix_account.home_directory == f"/home/{new_user.login}" assert len(new_user.log_entries) == 2 first, second = new_user.log_entries assert_logmessage_startswith(first, "Added to group Mitglied") assert_logmessage_startswith(second, "User created") assert new_user.account is not None assert new_user.account.balance == 0
def test_move_in_custom_traffic_group(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" traffic_group = user.TrafficGroup.q.first() new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group = config.member_group ) UserHelper.move_in( new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=traffic_group.id ) self.assertIn(traffic_group, new_user.active_traffic_groups())
def test_0010_move_in(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group=config.member_group ) UserHelper.move_in( new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=self.traffic_group_id, ) self.assertEqual(new_user.name, test_name) self.assertEqual(new_user.login, test_login) self.assertEqual(new_user.email, test_email) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.number, "1") self.assertEqual(new_user.room.level, 1) user_host = host.Host.q.filter_by(owner=new_user).one() self.assertEqual(len(user_host.interfaces), 1) user_interface = user_host.interfaces[0] self.assertEqual(len(user_interface.ips), 1) self.assertEqual(user_interface.mac, test_mac) # checks the initial group memberships active_user_groups = (new_user.active_property_groups() + new_user.active_traffic_groups()) for group in {config.member_group, config.network_access_group}: self.assertIn(group, active_user_groups) self.assertIsNotNone(new_user.account) self.assertEqual(new_user.account.balance, 0) self.assertFalse(new_user.has_property("reduced_membership_fee")) self.assertTrue(new_user.unix_account is not None) account = new_user.unix_account self.assertTrue(account.home_directory.endswith(new_user.login)) self.assertTrue(account.home_directory.startswith('/home/')) credits = new_user.traffic_credits self.assertEqual(len(credits), 1) self.assertEqual(credits[0].amount, self.traffic_group.initial_credit_amount)
def test_0010_move_in(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" new_user, _ = UserHelper.create_user(test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group=config.member_group) UserHelper.move_in( new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=self.traffic_group_id, ) self.assertEqual(new_user.name, test_name) self.assertEqual(new_user.login, test_login) self.assertEqual(new_user.email, test_email) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.number, "1") self.assertEqual(new_user.room.level, 1) user_host = host.Host.q.filter_by(owner=new_user).one() self.assertEqual(len(user_host.interfaces), 1) user_interface = user_host.interfaces[0] self.assertEqual(len(user_interface.ips), 1) self.assertEqual(user_interface.mac, test_mac) # checks the initial group memberships active_user_groups = (new_user.active_property_groups() + new_user.active_traffic_groups()) for group in {config.member_group, config.network_access_group}: self.assertIn(group, active_user_groups) self.assertIsNotNone(new_user.account) self.assertEqual(new_user.account.balance, 0) self.assertFalse(new_user.has_property("reduced_membership_fee")) self.assertTrue(new_user.unix_account is not None) account = new_user.unix_account self.assertTrue(account.home_directory.endswith(new_user.login)) self.assertTrue(account.home_directory.startswith('/home/')) credits = new_user.traffic_credits self.assertEqual(len(credits), 1) self.assertEqual(credits[0].amount, self.traffic_group.initial_credit_amount)
def create_some_user(self): new_user, _ = UserHelper.create_user( self.user.name, self.user.login, self.user.email, self.user.birthdate, processor=self.processing_user, groups=[self.config.member_group], address=self.room.address, ) return new_user
def test_0010_move_in(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = self.room.building test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" address = get_room(building_id=test_building.id, level=1, room_number="1").address new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, groups=[self.config.member_group], address=address ) UserHelper.move_in( new_user, building_id=test_building.id, level=1, room_number="1", mac=test_mac, processor=self.processing_user, ) self.assertEqual(new_user.name, test_name) self.assertEqual(new_user.login, test_login) self.assertEqual(new_user.email, test_email) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.number, "1") self.assertEqual(new_user.room.level, 1) self.assertEqual(new_user.address, new_user.room.address) user_host = host.Host.q.filter_by(owner=new_user).one() self.assertEqual(len(user_host.interfaces), 1) user_interface = user_host.interfaces[0] self.assertEqual(len(user_interface.ips), 1) self.assertEqual(user_interface.mac, test_mac) # checks the initial group memberships active_user_groups = new_user.active_property_groups() for group in {self.config.member_group, self.config.network_access_group}: self.assertIn(group, active_user_groups) self.assertIsNotNone(new_user.account) self.assertEqual(new_user.account.balance, 0) self.assertFalse(new_user.has_property("reduced_membership_fee")) self.assertTrue(new_user.unix_account is not None) account = new_user.unix_account self.assertTrue(account.home_directory.endswith(new_user.login)) self.assertTrue(account.home_directory.startswith('/home/'))
def test_0030_move_out(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" traffic_group = user.TrafficGroup.q.first() test_birthdate = "1990-01-01" new_user, _ = UserHelper.create_user(test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group=config.member_group) UserHelper.move_in(new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=traffic_group.id) session.session.commit() out_time = session.utcnow() UserHelper.move_out(user=new_user, comment="", processor=self.processing_user, when=out_time) session.session.refresh(new_user) # check ends_at of moved out user for membership in new_user.memberships: self.assertIsNotNone(membership.ends_at) self.assertLessEqual(membership.ends_at, out_time) self.assertFalse(new_user.hosts) self.assertIsNone(new_user.room) # check if users finance account still exists self.assertIsNotNone(new_user.account) UserHelper.move_in( user=new_user, building=test_building, level=1, room_number="1", mac=test_mac, birthdate=test_birthdate, processor=self.processing_user, traffic_group_id=traffic_group.id, ) session.session.refresh(new_user) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.level, 1) self.assertEqual(new_user.room.number, "1") self.assertEqual(len(new_user.hosts), 1) user_host = new_user.hosts[0] self.assertEqual(len(user_host.interfaces), 1) self.assertEqual(user_host.interfaces[0].mac, test_mac) self.assertEqual(len(user_host.ips), 1) self.assertTrue(new_user.member_of(config.member_group)) self.assertTrue(new_user.member_of(config.network_access_group)) # `member_of` only concerns `PropertyGroup`s! self.assertIn(traffic_group, new_user.active_traffic_groups())
def test_move_out(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = self.room.building test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" address = self.room.address new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, groups=[self.config.member_group], address=address ) UserHelper.move_in( new_user, building_id=test_building.id, level=1, room_number="1", mac=test_mac, processor=self.processing_user, ) session.session.commit() out_time = session.utcnow() UserHelper.move_out(user=new_user, comment="", processor=self.processing_user, when=out_time) session.session.refresh(new_user) # check ends_at of moved out user for membership in new_user.memberships: self.assertIsNotNone(membership.ends_at) self.assertLessEqual(membership.ends_at, out_time) self.assertFalse(new_user.hosts) self.assertIsNone(new_user.room) # move_out keeps user's address self.assertEqual(new_user.address, address) # check if users finance account still exists self.assertIsNotNone(new_user.account) UserHelper.move_in( user=new_user, building_id=test_building.id, level=1, room_number="1", mac=test_mac, birthdate=test_birthdate, processor=self.processing_user, ) session.session.refresh(new_user) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.level, 1) self.assertEqual(new_user.room.number, "1") self.assertEqual(new_user.address, new_user.room.address) self.assertEqual(len(new_user.hosts), 1) user_host = new_user.hosts[0] self.assertEqual(len(user_host.interfaces), 1) self.assertEqual(user_host.interfaces[0].mac, test_mac) self.assertEqual(len(user_host.ips), 1) self.assertTrue(new_user.member_of(config.member_group)) self.assertTrue(new_user.member_of(config.network_access_group))
def test_0030_move_out(self): test_name = u"Hans" test_login = u"hans66" test_email = u"*****@*****.**" test_building = facilities.Building.q.first() test_mac = "12:11:11:11:11:11" traffic_group = user.TrafficGroup.q.first() test_birthdate = "1990-01-01" new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, group = config.member_group ) UserHelper.move_in( new_user, test_building, level=1, room_number="1", mac=test_mac, processor=self.processing_user, traffic_group_id=traffic_group.id ) session.session.commit() out_time = session.utcnow() UserHelper.move_out(user=new_user, comment="", processor=self.processing_user, when=out_time) session.session.refresh(new_user) # check ends_at of moved out user for membership in new_user.memberships: self.assertIsNotNone(membership.ends_at) self.assertLessEqual(membership.ends_at, out_time) self.assertFalse(new_user.hosts) self.assertIsNone(new_user.room) # check if users finance account still exists self.assertIsNotNone(new_user.account) UserHelper.move_in( user=new_user, building=test_building, level=1, room_number="1", mac=test_mac, birthdate=test_birthdate, processor=self.processing_user, traffic_group_id=traffic_group.id, ) session.session.refresh(new_user) self.assertEqual(new_user.room.building, test_building) self.assertEqual(new_user.room.level, 1) self.assertEqual(new_user.room.number, "1") self.assertEqual(len(new_user.hosts), 1) user_host = new_user.hosts[0] self.assertEqual(len(user_host.interfaces), 1) self.assertEqual(user_host.interfaces[0].mac, test_mac) self.assertEqual(len(user_host.ips), 1) self.assertTrue(new_user.member_of(config.member_group)) self.assertTrue(new_user.member_of(config.network_access_group)) # `member_of` only concerns `PropertyGroup`s! self.assertIn(traffic_group, new_user.active_traffic_groups())
def test_move_out(self): test_name = "Hans" test_login = "******" test_email = "*****@*****.**" test_building = self.room.building test_mac = "12:11:11:11:11:11" test_birthdate = "1990-01-01" address = self.room.address new_user, _ = UserHelper.create_user( test_name, test_login, test_email, test_birthdate, processor=self.processing_user, groups=[self.config.member_group], address=address ) UserHelper.move_in( new_user, building_id=test_building.id, level=1, room_number="1", mac=test_mac, processor=self.processing_user, ) self.session.commit() out_time = session.utcnow() UserHelper.move_out(user=new_user, comment="", processor=self.processing_user, when=out_time) self.session.refresh(new_user) # check ends_at of moved out user for membership in new_user.memberships: assert (int := membership.active_during) is not None assert (end := int.end) is not None assert end <= out_time assert not new_user.hosts assert new_user.room is None # move_out keeps user's address assert new_user.address == address # check if users finance account still exists assert new_user.account is not None UserHelper.move_in( user=new_user, building_id=test_building.id, level=1, room_number="1", mac=test_mac, birthdate=test_birthdate, processor=self.processing_user, ) self.session.refresh(new_user) assert new_user.room.building == test_building assert new_user.room.level == 1 assert new_user.room.number == "1" assert new_user.address == new_user.room.address assert len(new_user.hosts) == 1 user_host = new_user.hosts[0] assert len(user_host.interfaces) == 1 assert user_host.interfaces[0].mac == test_mac assert len(user_host.ips) == 1 assert new_user.member_of(config.member_group) assert new_user.member_of(config.network_access_group)