def close(self, bugId, reporter, message, action='fixed'):
     actions = ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']
     # input check
     assert bugId.isdigit(), "bug id has to be a number"
     assert action in actions, "action has to be one of: %s" % ', '.join(
         actions)
     showdata = self.show(bugId)
     postdata = {
         'reporter': reporter,
         'comment': message,
         'action': 'resolve',
         'type': 'defect',
         'resolve_resolution': action,
         'summary': showdata['summary'],
         'priority': showdata['priority'],
         'milestone': showdata['milestone'],
         'component': showdata['component'],
         'version': showdata['version'],
         'keywords': showdata['keywords'],
         'cc': '',
     }
     postdata = urllib.urlencode(postdata)
     req = urllib2.Request('%s/ticket/%s' % (self.url, bugId),
                           data=postdata)
     req.add_header('User-agent', useragent())
     return urllib2.urlopen(req).read()
示例#2
0
def get_tinyurl(url):
    """ grab a tinyurl """
    postarray = [
        ('submit', 'submit'),
        ('url', url),
        ]
    postdata = urllib.urlencode(postarray)
    req = urllib2.Request(url='http://tinyurl.com/create.php', data=postdata)
    req.add_header('User-agent', useragent())
    try:
        res = urllib2.urlopen(req).readlines()
        #raise Exception("mekker")
    except urllib2.URLError, e:
        rlog(10, 'tinyurl', 'URLError: %s' % str(e))
        return
示例#3
0
def get_tinyurl(url):
    """ grab a tinyurl """
    postarray = [
        ('submit', 'submit'),
        ('url', url),
    ]
    postdata = urllib.urlencode(postarray)
    req = urllib2.Request(url='http://tinyurl.com/create.php', data=postdata)
    req.add_header('User-agent', useragent())
    try:
        res = urllib2.urlopen(req).readlines()
        #raise Exception("mekker")
    except urllib2.URLError, e:
        rlog(10, 'tinyurl', 'URLError: %s' % str(e))
        return
示例#4
0
    def getdata(self, name):
        """ get data of rss feed """
        rssitem = self.byname(name)
        if rssitem == None:
            raise RssNoSuchItem("no %s rss item found" % name)
        try:
            modified = self.modified[name]
        except KeyError:
            modified = None
        try:
            etag = self.etag[name]
        except KeyError:
            etag = None
        rlog(9, 'rss', 'fetching %s' % rssitem.url)
        result = feedparser.parse(rssitem.url, modified=modified, etag=etag, \
agent=useragent())
        if result and result.has_key('bozo_exception'):
            rlog(1, 'rss', '%s bozo_exception: %s' % (name, \
result['bozo_exception']))
        try:
            status = result.status
        except AttributeError:
            status = 200
        if status != 200 and status != 301 and status != 302 and status != 304:
            raise RssStatus(status)
        try:
            self.modified[name] = result.modified
        except AttributeError:
            pass
        try:
            self.etag[name] = result.etag
        except AttributeError:
            pass
        if status == 304:
            rlog(0, 'rss', 'recieved 304 from %s rss feed' % name)
            return self.rawresults[name]
        else:
            self.rawresults[name] = result.entries
        return result.entries
示例#5
0
    def getdata(self, name):
        """ get data of rss feed """
        rssitem = self.byname(name)
        if rssitem == None:
            raise RssNoSuchItem("no %s rss item found" % name)
        try:
            modified = self.modified[name]
        except KeyError:
            modified = None
        try:
            etag = self.etag[name]
        except KeyError:
            etag = None
        rlog(9, 'rss', 'fetching %s' % rssitem.url)
        result = feedparser.parse(rssitem.url, modified=modified, etag=etag, \
agent=useragent())
        if result and result.has_key('bozo_exception'):
            rlog(1, 'rss', '%s bozo_exception: %s' % (name, \
result['bozo_exception']))
        try:
            status = result.status
        except AttributeError:
            status = 200
        if status != 200 and status != 301 and status != 302 and status != 304:
            raise RssStatus(status)
        try:
            self.modified[name] = result.modified
        except AttributeError:
            pass
        try:
            self.etag[name] = result.etag
        except AttributeError:
            pass
        if status == 304:
            rlog(0, 'rss', 'recieved 304 from %s rss feed' % name)
            return self.rawresults[name]
        else:
            self.rawresults[name] = result.entries
        return result.entries
示例#6
0
 def getdata(self, name):
     """ get data of rss feed """
     rssitem = self.byname(name)
     if rssitem == None:
         raise RssNoSuchItem("no %s rss item found" % name)
     try:
         modified = self.modified[name]
     except KeyError:
         modified = None
     try:
         etag = self.etag[name]
     except KeyError:
         etag = None
     result = feedparser.parse(rssitem.url, modified=modified, etag=etag, agent=useragent())
     if result and result.has_key("bozo_exception"):
         rlog(1, "rss", "%s bozo_exception: %s" % (name, result["bozo_exception"]))
         # raise RssStatus(result['bozo_exception'])
     try:
         status = result.status
     except AttributeError:
         status = 200
     if status != 200 and status != 301 and status != 302 and status != 304:
         raise RssStatus(status)
     try:
         self.modified[name] = result.modified
     except AttributeError:
         pass
     try:
         self.etag[name] = result.etag
     except AttributeError:
         pass
     if status == 304:
         return self.rawresults[name]
     else:
         self.rawresults[name] = result.entries
     return result.entries
示例#7
0
 def close(self, bugId, reporter, message, action='fixed'):
     actions = ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme']
     # input check
     assert bugId.isdigit(), "bug id has to be a number"
     assert action in actions, "action has to be one of: %s" % ', '.join(actions)
     showdata = self.show(bugId) 
     postdata = {
         'reporter':         reporter,
         'comment':          message,
         'action':           'resolve',
         'type':             'defect',
         'resolve_resolution': action,
         'summary':          showdata['summary'],
         'priority':         showdata['priority'],
         'milestone':        showdata['milestone'],
         'component':        showdata['component'],
         'version':          showdata['version'],
         'keywords':         showdata['keywords'],
         'cc':               '',
         }
     postdata = urllib.urlencode(postdata)
     req = urllib2.Request('%s/ticket/%s' % (self.url, bugId), data=postdata)
     req.add_header('User-agent', useragent())
     return urllib2.urlopen(req).read()
示例#8
0
    def sendget(self):
        headers = {'Content-Type': 'text/html', \
'Accept': 'text/plain; text/html', 'User-Agent': useragent()}
        self.dorequest('GET', self.path)
示例#9
0
    def sendpost(self, postdata):
        headers = {'Content-Type': 'application/x-www-form-urlencoded', \
'Accept': 'text/plain; text/html', 'User-Agent': useragent()}
        self.dorequest('POST', self.path, postdata, headers)