def save(self): if not self.uuid: self.uuid = unicode(uuid.uuid4()) session = meta.get_session() session.add(self) session.flush()
def test_user_can_be_deleted(): "User().delete() should delete a user" session = get_session() assert session.query(User).count() is 0 user = User.create(name=u'some-name', username=u'some-username', email=u'*****@*****.**', password=u'some-password') assert session.query(User).count() is 1 user.delete() assert session.query(User).count() is 0
def test_can_create_user(): "User.create() creates and persists a new user" User.create(name=u'John Doe', username=u'john.doe', email=u'*****@*****.**', password=u'some-password') session = meta.get_session() users = session.query(User).all() assert_equals(len(users), 1) user = users[0] assert_equals(user.name, u'John Doe') assert_equals(user.email, u'*****@*****.**')
def authenticate(cls, email, password): session = meta.get_session() user = session.query(cls).filter_by(email=unicode(email)).first() if not user: raise cls.NotFound, \ 'User with email %s is not yet registered' % email password = cls.make_hashed_password(email, password) if user.password == password: return user else: raise cls.WrongPassword, 'The password is wrong'
def test_new_user_has_hashed_password(): "User.create() creates a user with hashed password" User.create(name=u'John Doe', username=u'john.doe', email=u'*****@*****.**', password=u'some-password') session = meta.get_session() user = session.query(User).first() concatenated = '[email protected]+some-password' expected_password = "******" % sha.new(concatenated).hexdigest() assert_equals(user.password, expected_password)
def update_authorized_keys(cls): temp_filename = "/tmp/hacklab.%s.keys" % unicode(uuid.uuid4()) temp_file = FileSystem.open(temp_filename, 'w') session = meta.get_session() users = session.query(cls).all() data = [] for user in users: for key in user.keys: row = ENTRY_TEMPLATE.substitute({'repos': user.username, 'key': key.data}) data.append(row) temp_file.write("\n".join(data)) temp_file.close() shutil.copy(temp_filename, os.path.expanduser('~/.ssh/authorized_keys')) os.remove(temp_filename)
def test_can_create_repository(): "GitRepository.create() creates and persists a new repository" first = User.create(name=u'First Repo', username=u'first.repo', email=u'*****@*****.**', password=u'some-passwd') GitRepository.create(name=u'Hacklab Contributions', description=u'Some description...', owner=first, slug=u"hacklab-contrib") session = meta.get_session() repositories = session.query(GitRepository).all() assert_equals(len(repositories), 1) repository = repositories[0] assert_equals(repository.name, u'Hacklab Contributions') assert_equals(repository.description, u'Some description...') assert_equals(repository.slug, u'hacklab-contrib') assert_equals(repository.owner.username, 'first.repo')
def delete(self): session = meta.get_session() session.delete(self)
def fetch_by(cls, **kw): session = meta.get_session() return session.query(cls).filter_by(**kw)
def total_of_keys(self): cls = meta.get_model('PublicKey') session = meta.get_session() total = session.query(cls).filter_by(owner=self).count() return total
def total_of_repositories(self): cls = meta.get_model('GitRepository') session = meta.get_session() total = session.query(cls).filter_by(owner=self).count() return total