Exemplo n.º 1
0
    def save(self):
        if not self.uuid:
            self.uuid = unicode(uuid.uuid4())

        session = meta.get_session()
        session.add(self)
        session.flush()
Exemplo n.º 2
0
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
Exemplo n.º 3
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'*****@*****.**')
Exemplo n.º 4
0
    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'
Exemplo n.º 5
0
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)
Exemplo n.º 6
0
    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)
Exemplo n.º 7
0
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')
Exemplo n.º 8
0
 def delete(self):
     session = meta.get_session()
     session.delete(self)
Exemplo n.º 9
0
 def fetch_by(cls, **kw):
     session = meta.get_session()
     return session.query(cls).filter_by(**kw)
Exemplo n.º 10
0
 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
Exemplo n.º 11
0
 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