Exemple #1
0
def create(data):
    name = data['full_name'].split('/')[1]
    user = users_service.get(data['owner']['id'])
    if user is None:
        user = users_service.create(data['owner'])
        try:
            db.session.add(user)
            db.session.commit()
        except:
            db.session.rollback()
            flash('Repository creation failed, '
                  'we cannot import owner data', 'danger')
            return None
    else:
        repo = Repository.query.filter_by(owner_id=user.id, name=name).first()
        if repo is not None:
            flash('Repository already exists', 'warning')
            return None
    try:
        repo = Repository(user, data)
        repo.imported_from = 'GitHub'
        db.session.add(repo)
        db.session.commit()
        flash('Repository created successfully')
    except Exception as e:
        db.session.rollback()
        flash('Repository creation failed', 'danger')
        return None
    try:
        for topic in repo.topics:
            topics_service.update_repos_count(topic)
        db.session.commit()
    except:
        db.session.rollback()
    return repo
    def setUp(self):
        self.fake_git = FakeGit()
        self.test_repo_url = self.fake_git.url

        self.mc = Mock()
        self.mc.get = Mock(return_value=None)

        self.repo = Repository(self.test_repo_url, mc=self.mc)
 def test_update_failure(self):
     self.repo = Repository("https://github.com/does/not/exist.git",
                            mc=self.mc)
     with self.assertRaises(InvalidUsage) as context:
         self.repo.update()
     self.assertEqual(
         'Repository https://github.com/does/not/exist.git is unavailable or invalid',
         str(context.exception))
Exemple #4
0
    def setUp(self):
        self.fake_git = FakeGit()

        self.mc = Mock()
        self.mc.get = Mock(return_value=None)

        self.repo = Repository(self.fake_git.url, mc=self.mc)

        self.commit_id = "886cca8f867919bc02955c763e7f5108b33084b6"
        self.commit = self.repo.get_commit(self.commit_id)
Exemple #5
0
def feature(repository, feature):

    Repository().clone_branch(repository, "master")

    path = findFeaturesDir(repository)
    files = findFeaturesFiles(path)
    menu = getAllFeatureNames(path, files)
    features = parseAllFeatureFiles(path, files)

    for f in features:
        if f['feature']['name'] == feature:
            return render_template('index.html',
                                   features=f,
                                   menu=menu,
                                   repository=repository)

    return render_template('index.html',
                           features=features[0],
                           menu=menu,
                           repository=repository)

    print(
        prepare_json_response(message=None,
                              success=True,
                              data={
                                  "repository": repository,
                                  "branch": "master"
                              }))

    return render_template('index.html', features=features, menu=menu)
Exemple #6
0
class TestCommit(unittest.TestCase):
    def setUp(self):
        self.fake_git = FakeGit()

        self.mc = Mock()
        self.mc.get = Mock(return_value=None)

        self.repo = Repository(self.fake_git.url, mc=self.mc)

        self.commit_id = "886cca8f867919bc02955c763e7f5108b33084b6"
        self.commit = self.repo.get_commit(self.commit_id)

    def tearDown(self):
        shutil.rmtree(self.repo.path)
        self.fake_git.clean_up()
        self.commit.clean_up()

    def test_id(self):
        self.assertEqual(self.commit.id, self.commit_id)

    def test_fetch(self):
        self.commit.fetch()
        print(self.commit.path)
        self.assertTrue(os.path.exists(self.commit.path + "/README.md"))
        self.assertFalse(os.path.exists(self.commit.path + "/file_1.md"))
 def handle(self, *args, **options):
     path = args[0]
     with open(path, 'rb') as csvfile:
         csvreader = csv.reader(csvfile, delimiter=',', quotechar='"')
         for row in csvreader:
             print "importing %s" % row[0]
             Repository(name=row[0],
                        short_name=row[1],
                        source_type=row[2],
                        source_url=row[3],
                        remote_url=row[4]).save()
Exemple #8
0
def branch(repository, branch):

    Repository().clone_branch(repository, branch)

    features_dir = findFeaturesDir()

    return jsonify(
        prepare_json_response(message=None,
                              success=True,
                              data={
                                  "repository": repository,
                                  "branch": branch
                              }))
class TestRepository(unittest.TestCase):
    def setUp(self):
        self.fake_git = FakeGit()
        self.test_repo_url = self.fake_git.url

        self.mc = Mock()
        self.mc.get = Mock(return_value=None)

        self.repo = Repository(self.test_repo_url, mc=self.mc)

    def tearDown(self):
        shutil.rmtree(self.repo.path)
        self.fake_git.clean_up()

    def test_url(self):
        self.assertEqual(self.repo.url, self.test_repo_url)

    def test_github_url(self):
        self.repo = Repository("foo/bar", mc=self.mc)
        self.assertEqual(self.repo.url, "https://github.com/foo/bar.git")

    def test_update_creates_git_directory(self):
        self.repo.update()
        self.assertEqual(os.path.isdir(self.repo.path + "/.git"), True)

    def test_update_bails_if_called_recently(self):
        self.mc.get = Mock(return_value="foo")
        self.repo.update()
        self.assertEqual(os.path.isdir(self.repo.path + "/.git"), False)

    def test_update_failure(self):
        self.repo = Repository("https://github.com/does/not/exist.git",
                               mc=self.mc)
        with self.assertRaises(InvalidUsage) as context:
            self.repo.update()
        self.assertEqual(
            'Repository https://github.com/does/not/exist.git is unavailable or invalid',
            str(context.exception))

    def test_list_references(self):
        references = self.repo.list_references()
        self.assertEqual(
            set(references),
            set(['merge-master', "master", "merge-standard",
                 "merge-conflict"]))

    def test_path_is_always_the_same(self):
        other_repo = Repository(self.test_repo_url)
        self.assertEqual(self.repo.path, other_repo.path)

    def test_get_commit_with_branch(self):
        references = self.repo.get_commit("merge-master")
        self.assertEqual(references.id,
                         "886cca8f867919bc02955c763e7f5108b33084b6")

    def test_get_commit_with_full_hash(self):
        references = self.repo.get_commit(
            "886cca8f867919bc02955c763e7f5108b33084b6")
        self.assertEqual(references.id,
                         "886cca8f867919bc02955c763e7f5108b33084b6")

    def test_get_commit_with_partial_hash(self):
        references = self.repo.get_commit("886cc")
        self.assertEqual(references.id,
                         "886cca8f867919bc02955c763e7f5108b33084b6")

    def test_get_commit_failure(self):
        with self.assertRaises(InvalidUsage) as context:
            self.repo.get_commit("ffffff")
        self.assertIn('Reference ffffff not found', str(context.exception))
 def test_path_is_always_the_same(self):
     other_repo = Repository(self.test_repo_url)
     self.assertEqual(self.repo.path, other_repo.path)
 def test_github_url(self):
     self.repo = Repository("foo/bar", mc=self.mc)
     self.assertEqual(self.repo.url, "https://github.com/foo/bar.git")