def test_add_topics(self):
     aggregator = Aggregator()
     aggregator.add(Repo(False, 10, "python", ["Flask"]))
     self.assertEqual(aggregator.topics, {"flask": 1})
     aggregator.add(Repo(False, 10, "python", ["flask"]))
     self.assertEqual(aggregator.topics, {"flask": 2})
     aggregator.add(Repo(False, 10, "python", ["flask", "numpy"]))
     self.assertEqual(aggregator.topics, {"flask": 3, "numpy": 1})
 def test_add_languages(self):
     aggregator = Aggregator()
     aggregator.add(Repo(False, 10, "Python", ["Flask"]))
     self.assertEqual(aggregator.languages, {"python": 1})
     aggregator.add(Repo(False, 10, "python", ["Flask"]))
     self.assertEqual(aggregator.languages, {"python": 2})
     aggregator.add(Repo(False, 10, "java", ["Flask"]))
     self.assertEqual(aggregator.languages, {"python": 2, "java": 1})
     aggregator.add(Repo(False, 10, None, ["Flask"]))
     self.assertEqual(aggregator.languages, {"python": 2, "java": 1})
 def test_asdict(self):
     aggregator = Aggregator()
     expected = {
         "public_repo_count": 0,
         "public_repo_breakdown": {
             "original_repo_count": 0,
             "forked_repo_count": 0
         },
         "watcher_count": 0,
         "languages": [],
         "topics": []
     }
     self.assertEqual(aggregator.asdict(), expected)
     expected2 = {
         "public_repo_count": 1,
         "public_repo_breakdown": {
             "original_repo_count": 1,
             "forked_repo_count": 0
         },
         "watcher_count": 10,
         "languages": [{
             "name": "python",
             "count": 1
         }],
         "topics": [{
             "name": "flask",
             "count": 1
         }]
     }
     aggregator.add(Repo(True, 10, "python", ["flask"]))
     self.assertEqual(aggregator.asdict(), expected2)
Exemplo n.º 4
0
def add_repo(project_id):
    data = request.get_json()
    project = Project.query.get(project_id)
    if project is None:
        return jsonify(message="Project not found"), 404
    if not project.course.is_user(current_user.id):
        return jsonify(message="Unauthorized to add project"), 403
    repo = project.get_repo_for_user(current_user.id)
    if repo:
        return jsonify(message="Already added repo for project"), 400

    repo = Repo(project_id=project.id, name=data['repo_name'])
    repo.user_id = current_user.id
    if project.type is not ProjectTypes.IND:
        g = project.get_group_for_user(current_user.id)
        if g is None:
            return jsonify(message="Not part of group"), 400
        repo.group_id = g.id

    webhook = add_webhook(repo.name, current_user.oauth_token)
    if 'id' not in webhook:
        return jsonify(error="Could not create webhook", data=webhook), 401
    repo.webhook_id = webhook['id']

    db.session.add(repo)
    db.session.commit()
    return jsonify(repo=ps.RepoSchema().dump(repo)), 201
Exemplo n.º 5
0
def RunWithPars(pars, uid):
    startTime = Common.getCurrentTimeMil()
    reposFol = 'SavePath/Repos/'
    if not os.path.exists(config.basedir + '/' + reposFol):
        os.makedirs(config.basedir + '/' + reposFol)
    fname = reposFol + Common.gen_rnd_filename()
    os.makedirs(config.basedir + '/' + fname)
    ##ADD Field
    e = Repo()
    e.cloneFinishDate = "--RUNNING--"
    e.cloneStartDate = str(startTime)
    e.repoInfo = ''
    e.isPrivate = int(pars['isPrivate'])
    e.path = fname
    e.repoName = pars['repoName']
    e.url = pars['url']
    e.userId = uid
    db.session.add(e)
    db.session.commit()

    try:
        porcelain.clone(pars['url'], config.basedir + '/' + fname)
        endTime = Common.getCurrentTimeMil()
        e.cloneFinishDate = str(endTime)
        db.session.commit()

    except Exception as ex:
        print(ex)
        e.delete()
        db.session.commit()
Exemplo n.º 6
0
def add_repository(url, comment, user_id):
    repo = Repo(url=url,
                timestamp=datetime.datetime.now(),
                user_id=user_id,
                comment=comment)
    db.session.add(repo)
    db.session.commit()
    return repo
 def test_init(self):
     is_original = True
     watcher_count = 10
     language = "Python"
     topics = ["Flask"]
     repo = Repo(is_original, watcher_count, language, topics)
     self.assertEqual(repo.is_original, is_original)
     self.assertEqual(repo.watcher_count, watcher_count)
     self.assertEqual(repo.language, language)
     self.assertEqual(repo.topics, topics)
Exemplo n.º 8
0
    def create(self, request, *args, **kwargs):
        """ Generates db repo object """
        user = request.data['user']
        path = request.data['path']
        version = request.data['version']

        res = RepoManager(user).create()
        if not version:
            version = res

        r = Repo(user=user, path=path, version=version)
        r.save()

        rs = RepoSerializer(r)
        return Response(rs.data)
Exemplo n.º 9
0
def change_status(target_repo, state):
    from models import Repo
    if not use_database:
        return ''
    try:
        repo = Repo.objects.get(url=target_repo)
        repo.last_used = datetime.today()
        repo.state = state
        repo.owner = parent_folder
        repo.save()
    except DoesNotExist:
        repo = Repo()
        repo.url = target_repo
        repo.state = state
        repo.owner = parent_folder
        repo.save()
    except Exception as e:
        print 'database_exception: ' + str(e)
Exemplo n.º 10
0
    def cargar_datos(self):
        """Parsea o contido dun ficheiro JSON."""

        datos_json = self.cargar_json()

        for k, v in datos_json.items():
            if (k == "usuario"):
                usuario = v
                self.usuario = UsuarioGit(usuario["usuario"], usuario["email"])
            elif (k == "repos"):
                for item in v:
                    aux = item
                    repo = Repo(
                                aux["nome"],
                                aux["rama"],
                                aux["remoto"],
                                aux["uri"],
                                aux["directorio"],
                                aux["ten_submodulos"],
                                aux["e_submodulo"]
                            )
                    self.add_repo(repo)
Exemplo n.º 11
0
 def post(self):
     parsed_args = parser.parse_args()
     repo = Repo(creator=parsed_args['creator'], name=parsed_args['name'])
     session.add(repo)
     session.commit()
     return repo, 201
Exemplo n.º 12
0
 def test_add_none(self):
     aggregator = Aggregator()
     aggregator.add(Repo(None, 10, "Python", ["Flask"]))
     self.assertEqual(aggregator.count, 1)
     self.assertEqual(aggregator.original_count, 0)
     self.assertEqual(aggregator.forked_count, 0)