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))
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 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)
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()
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")