From f9afac5239d1238ba794b0e2cd3c8af95d0f518c Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jul 28 2016 12:18:13 +0000 Subject: Adjust the validators so they return the value validated --- diff --git a/hubs/validators.py b/hubs/validators.py index c0385d3..fd4066c 100755 --- a/hubs/validators.py +++ b/hubs/validators.py @@ -1,6 +1,7 @@ import kitchen.text.converters import hubs.models +import httplib def required(session, value): @@ -22,7 +23,9 @@ def link(session, value): def username(session, value): - return hubs.models.User.by_username(session, value) is not None + if hubs.models.User.by_username(session, value) is not None: + return value + raise ValueError('Invalid username') def github_organization(session, value): @@ -32,14 +35,25 @@ def github_organization(session, value): def fmn_context(session, value): # TODO get this from the fedmsg config. - return value in [ - 'irc', 'email', 'android', 'desktop', 'hubs', - ] + if value in [ + 'irc', 'email', 'android', 'desktop', 'hubs',]: + return value + raise ValueError('Invalid FMN context') def pagure_repo(session, value): - return value + conn = httplib.HTTPSConnection("pagure.io") + conn.request("GET", "/%s" % value) + response = conn.getresponse() + if response.status == 200: + return value + raise ValueError('Invalid pagure repo') + def fedorahosted_project(session, value): - # TODO -- implement this. - return value + conn = httplib.HTTPSConnection("fedorahosted.org") + conn.request("GET", "/%s" % value) + response = conn.getresponse() + if response.status == 200: + return value + raise ValueError('Invalid fedorahosted project')