class StatisticsController(BaseController): def __init__(self): super(StatisticsController, self).__init__() self.lmf = LdapModelFactory() def __before__(self): super(StatisticsController, self).__before__() if not self.identity: redirect(url(controller='error', action='forbidden')) @BaseController.needAdmin def index(self): c.heading = _('Statistics') c.members = len(self.lmf.getUserList()) activeMembers = self.lmf.getActiveMemberList() c.activeMembers = len(activeMembers) c.formerMembers = c.members - c.activeMembers c.paymentsOk = 0 for uid in activeMembers: last_payment = None try: last_payment = Session.query(Payment).filter(and_(Payment.uid == uid, Payment.verified == 1)).order_by(Payment.date.desc()).limit(1)[0] except Exception as e: ''' Don't care if there is no payment ''' print e print uid pass if last_payment: d = last_payment.date today = datetime.now().date() if d.year > today.year or (d.year == today.year and d.month >= today.month): c.paymentsOk += 1 c.paymentsNotOk = c.activeMembers - c.paymentsOk return render('/statistics/index.mako')
class TestLdapModelFactory(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.username = '******' self.password = '******' ldap_connector = LdapConnector(username=self.username, password=self.password) self.ldapcon = ldap_connector.get_connection() self.ldmf = LdapModelFactory(self.ldapcon) def tearDown(self): unittest.TestCase.tearDown(self) self.ldapcon = None ################# User def test_getUser(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user, mematool.model.ldapmodel.Member) def test_getUserList(self): o = self.ldmf.getUserList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getActiveMemberList(self): o = self.ldmf.getActiveMemberList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getUserGroupList(self): o = self.ldmf.getUserGroupList(self.username) self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getHighestUidNumber(self): o = self.ldmf.getHighestUidNumber() self.assertIsInstance(o, str) self.assertRegexpMatches(o, r'^\d+$') o = int(o) self.assertGreaterEqual(o, 1000) def test_getUidNumberFromUid(self): o = self.ldmf.getUidNumberFromUid(self.username) self.assertIsInstance(o, str) self.assertRegexpMatches(o, r'^\d+$') o = int(o) self.assertGreaterEqual(o, 1000) ''' def test_prepareVolatileAttribute(self): # @todo raise NotImplemented() def test__updateMember(self): # @todo raise NotImplemented() def test__addMember(self): # @todo raise NotImplemented() def test_deleteUser(self): # @todo raise NotImplemented() def test_changeUserGroup(self): # @todo raise NotImplemented() def test_updateAvatar(self): # @todo raise NotImplemented() ''' ################# Group def test_getGroup(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user.groups, list) self.assertGreaterEqual(len(user.groups), 1) for g in user.groups: group = self.ldmf.getGroup(g) self.assertIsInstance(group, mematool.model.dbmodel.Group) def test_getGroupList(self): o = self.ldmf.getGroupList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getGroupMembers(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user.groups, list) self.assertGreaterEqual(len(user.groups), 1) for g in user.groups: o = self.ldmf.getGroupMembers(g) self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_addDeleteGroup(self): # add self.assertTrue(self.ldmf.addGroup('test_group')) o = self.ldmf.getGroupList() self.assertIn('test_group', o) # delete self.assertTrue(self.ldmf.deleteGroup('test_group')) o = self.ldmf.getGroupList() self.assertNotIn('test_group', o) def test_getHighestGidNumber(self): o = self.ldmf.getHighestGidNumber() self.assertIsInstance(o, str) self.assertRegexpMatches(o, r'^\d+$') o = int(o) self.assertGreaterEqual(o, 1000) ################# Domain def test_addDeleteDomain(self): res = self.ldmf.addDomain('example.com') self.assertTrue(res) res = self.ldmf.getDomainList() self.assertIn('example.com', res) res = self.ldmf.deleteDomain('example.com') self.assertTrue(res) res = self.ldmf.getDomainList() self.assertNotIn('example.com', res) def test_getDomain(self): res = self.ldmf.addDomain('example.com') self.assertTrue(res) d = self.ldmf.getDomain('example.com') self.assertIsInstance(d, mematool.model.ldapmodel.Domain) res = self.ldmf.deleteDomain('example.com') self.assertTrue(res) def test_getDomainList(self): res = self.ldmf.getDomainList() self.assertIsInstance(res, list) ################# Alias def test_getAlias(self): res = self.ldmf.addDomain('example.com') alias = mematool.model.ldapmodel.Alias() alias.dn_mail = '*****@*****.**' alias.mail = ['*****@*****.**'] alias.maildrop = ['*****@*****.**'] try: res = self.ldmf.addAlias(alias) self.assertTrue(res) except mematool.helpers.exceptions.EntryExists: pass res = self.ldmf.getAlias('*****@*****.**') self.assertIsInstance(res, mematool.model.ldapmodel.Alias) res = self.ldmf.deleteAlias('*****@*****.**') self.assertTrue(res) res = self.ldmf.deleteDomain('example.com') self.assertTrue(res) def test_getAliasList(self): res = self.ldmf.getAliasList('example.com') self.assertIsInstance(res, list) def test_getMaildropList(self): res = self.ldmf.getMaildropList('*****@*****.**') self.assertIsInstance(res, dict) def test_addDeleteAlias(self): res = self.ldmf.addDomain('example.com') #self.assertTrue(res) alias = mematool.model.ldapmodel.Alias() alias.dn_mail = '*****@*****.**' alias.mail = ['*****@*****.**'] alias.maildrop = ['*****@*****.**'] try: res = self.ldmf.addAlias(alias) self.assertTrue(res) except mematool.helpers.exceptions.EntryExists: pass res = self.ldmf.deleteAlias('*****@*****.**') self.assertTrue(res) res = self.ldmf.deleteDomain('example.com') self.assertTrue(res) '''
class TestLdapModelFactory(unittest.TestCase): def setUp(self): unittest.TestCase.setUp(self) self.username = "******" self.password = "******" ldap_connector = LdapConnector(username=self.username, password=self.password) self.ldapcon = ldap_connector.get_connection() self.ldmf = LdapModelFactory(self.ldapcon) def tearDown(self): unittest.TestCase.tearDown(self) self.ldapcon = None ################# User def test_getUser(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user, mematool.model.ldapmodel.Member) def test_getUserList(self): o = self.ldmf.getUserList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getActiveMemberList(self): o = self.ldmf.getActiveMemberList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getUserGroupList(self): o = self.ldmf.getUserGroupList(self.username) self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getHighestUidNumber(self): o = self.ldmf.getHighestUidNumber() self.assertIsInstance(o, str) self.assertRegexpMatches(o, r"^\d+$") o = int(o) self.assertGreaterEqual(o, 1000) def test_getUidNumberFromUid(self): o = self.ldmf.getUidNumberFromUid(self.username) self.assertIsInstance(o, str) self.assertRegexpMatches(o, r"^\d+$") o = int(o) self.assertGreaterEqual(o, 1000) """ def test_prepareVolatileAttribute(self): # @todo raise NotImplemented() def test__updateMember(self): # @todo raise NotImplemented() def test__addMember(self): # @todo raise NotImplemented() def test_deleteUser(self): # @todo raise NotImplemented() def test_changeUserGroup(self): # @todo raise NotImplemented() def test_updateAvatar(self): # @todo raise NotImplemented() """ ################# Group def test_getGroup(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user.groups, list) self.assertGreaterEqual(len(user.groups), 1) for g in user.groups: group = self.ldmf.getGroup(g) self.assertIsInstance(group, mematool.model.dbmodel.Group) def test_getGroupList(self): o = self.ldmf.getGroupList() self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_getGroupMembers(self): user = self.ldmf.getUser(self.username) self.assertIsInstance(user.groups, list) self.assertGreaterEqual(len(user.groups), 1) for g in user.groups: o = self.ldmf.getGroupMembers(g) self.assertIsInstance(o, list) self.assertGreaterEqual(len(o), 1) def test_addDeleteGroup(self): # add self.assertTrue(self.ldmf.addGroup("test_group")) o = self.ldmf.getGroupList() self.assertIn("test_group", o) # delete self.assertTrue(self.ldmf.deleteGroup("test_group")) o = self.ldmf.getGroupList() self.assertNotIn("test_group", o) def test_getHighestGidNumber(self): o = self.ldmf.getHighestGidNumber() self.assertIsInstance(o, str) self.assertRegexpMatches(o, r"^\d+$") o = int(o) self.assertGreaterEqual(o, 1000) ################# Domain def test_addDeleteDomain(self): res = self.ldmf.addDomain("example.com") self.assertTrue(res) res = self.ldmf.getDomainList() self.assertIn("example.com", res) res = self.ldmf.deleteDomain("example.com") self.assertTrue(res) res = self.ldmf.getDomainList() self.assertNotIn("example.com", res) def test_getDomain(self): res = self.ldmf.addDomain("example.com") self.assertTrue(res) d = self.ldmf.getDomain("example.com") self.assertIsInstance(d, mematool.model.ldapmodel.Domain) res = self.ldmf.deleteDomain("example.com") self.assertTrue(res) def test_getDomainList(self): res = self.ldmf.getDomainList() self.assertIsInstance(res, list) ################# Alias def test_getAlias(self): res = self.ldmf.addDomain("example.com") alias = mematool.model.ldapmodel.Alias() alias.dn_mail = "*****@*****.**" alias.mail = ["*****@*****.**"] alias.maildrop = ["*****@*****.**"] try: res = self.ldmf.addAlias(alias) self.assertTrue(res) except mematool.helpers.exceptions.EntryExists: pass res = self.ldmf.getAlias("*****@*****.**") self.assertIsInstance(res, mematool.model.ldapmodel.Alias) res = self.ldmf.deleteAlias("*****@*****.**") self.assertTrue(res) res = self.ldmf.deleteDomain("example.com") self.assertTrue(res) def test_getAliasList(self): res = self.ldmf.getAliasList("example.com") self.assertIsInstance(res, list) def test_getMaildropList(self): res = self.ldmf.getMaildropList("*****@*****.**") self.assertIsInstance(res, dict) def test_addDeleteAlias(self): res = self.ldmf.addDomain("example.com") # self.assertTrue(res) alias = mematool.model.ldapmodel.Alias() alias.dn_mail = "*****@*****.**" alias.mail = ["*****@*****.**"] alias.maildrop = ["*****@*****.**"] try: res = self.ldmf.addAlias(alias) self.assertTrue(res) except mematool.helpers.exceptions.EntryExists: pass res = self.ldmf.deleteAlias("*****@*****.**") self.assertTrue(res) res = self.ldmf.deleteDomain("example.com") self.assertTrue(res) """