Blame tests/test_pagure_utils.py

Patrick Uiterwijk 19d7c5
# -*- coding: utf-8 -*-
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
"""
Patrick Uiterwijk 19d7c5
 (c) 2018 - Copyright Red Hat Inc
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
 Authors:
Patrick Uiterwijk 19d7c5
   Patrick Uiterwijk <puiterwijk@redhat.com></puiterwijk@redhat.com>
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
"""
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
from __future__ import unicode_literals
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
__requires__ = ['SQLAlchemy >= 0.8']
Patrick Uiterwijk 19d7c5
import pkg_resources
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
import unittest
Patrick Uiterwijk 19d7c5
import shutil
Patrick Uiterwijk 19d7c5
import sys
Patrick Uiterwijk 19d7c5
import os
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
import mock
Patrick Uiterwijk 19d7c5
import munch
Patrick Uiterwijk 19d7c5
import pygit2
Patrick Uiterwijk 19d7c5
import werkzeug
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
sys.path.insert(0, os.path.join(os.path.dirname(
Patrick Uiterwijk 19d7c5
    os.path.abspath(__file__)), '..'))
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
import pagure.lib.model
Pierre-Yves Chibon 930073
import pagure.lib.query
Patrick Uiterwijk 19d7c5
import pagure.utils
Patrick Uiterwijk 19d7c5
import tests
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
class PagureUtilsTests(tests.SimplePagureTest):
Patrick Uiterwijk 19d7c5
    """ Tests for pagure.utils """
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
    def setUp(self):
Patrick Uiterwijk 19d7c5
        """ Set up the environnment, run before every tests. """
Patrick Uiterwijk 19d7c5
        super(PagureUtilsTests, self).setUp()
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
        tests.create_projects(self.session)
Patrick Uiterwijk 19d7c5
        tests.create_projects_git(os.path.join(self.path, 'repos'), bare=True)
Patrick Uiterwijk 19d7c5
        tests.add_content_git_repo(os.path.join(self.path, 'repos', 'test2.git'))
Patrick Uiterwijk 19d7c5
Pierre-Yves Chibon 930073
        project = pagure.lib.query._get_project(self.session, 'test')
Patrick Uiterwijk 19d7c5
        # Add a deploy key to the project
Patrick Uiterwijk 19d7c5
        new_key_obj = pagure.lib.model.SSHKey(
Patrick Uiterwijk 19d7c5
            project_id=project.id,
Patrick Uiterwijk 19d7c5
            pushaccess=False,
Patrick Uiterwijk 19d7c5
            public_ssh_key='\n foo bar',
Patrick Uiterwijk 19d7c5
            ssh_short_key='\n foo bar',
Patrick Uiterwijk 19d7c5
            ssh_search_key='\n foo bar',
Patrick Uiterwijk 19d7c5
            creator_user_id=1  # pingou
Patrick Uiterwijk 19d7c5
        )
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
        self.session.add(new_key_obj)
Patrick Uiterwijk 19d7c5
        self.session.commit()
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
    def test_lookup_deploykey_non_deploykey(self):
Patrick Uiterwijk 19d7c5
        """ Test lookup_deploykey with a non-deploykey username. """
Pierre-Yves Chibon 930073
        project = pagure.lib.query._get_project(self.session, 'test')
Patrick Uiterwijk 19d7c5
        res = pagure.utils.lookup_deploykey(project, 'pingou')
Patrick Uiterwijk 19d7c5
        self.assertEquals(res, None)
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
    def test_lookup_deploykey_different_project(self):
Patrick Uiterwijk 19d7c5
        """ Test lookup_deploykey with a username for another project. """
Pierre-Yves Chibon 930073
        project = pagure.lib.query._get_project(self.session, 'test2')
Patrick Uiterwijk 19d7c5
        res = pagure.utils.lookup_deploykey(project, 'deploykey_test_1')
Patrick Uiterwijk 19d7c5
        self.assertEquals(res, None)
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
    def test_lookup_deploykey_non_existent_key(self):
Patrick Uiterwijk 19d7c5
        """ Test lookup_deploykey with a non-existing deploykey. """
Pierre-Yves Chibon 930073
        project = pagure.lib.query._get_project(self.session, 'test')
Patrick Uiterwijk 19d7c5
        res = pagure.utils.lookup_deploykey(project, 'deploykey_test_2')
Patrick Uiterwijk 19d7c5
        self.assertEquals(res, None)
Patrick Uiterwijk 19d7c5
Patrick Uiterwijk 19d7c5
    def test_lookup_deploykey(self):
Patrick Uiterwijk 19d7c5
        """ Test lookup_deploykey with a correct username. """
Pierre-Yves Chibon 930073
        project = pagure.lib.query._get_project(self.session, 'test')
Patrick Uiterwijk 19d7c5
        res = pagure.utils.lookup_deploykey(project, 'deploykey_test_1')
Patrick Uiterwijk 19d7c5
        self.assertNotEquals(res, None)
Patrick Uiterwijk 19d7c5
        self.assertFalse(res.pushaccess)