implement api call to get days since last freeze
This commit is contained in:
@@ -10,6 +10,7 @@ from xml.etree import cElementTree as ET
|
||||
import yaml
|
||||
import re
|
||||
import urllib2
|
||||
import time
|
||||
|
||||
from osc import oscerr
|
||||
from osc.core import change_review_state
|
||||
@@ -452,6 +453,20 @@ class StagingAPI(object):
|
||||
# The only case we are green
|
||||
return True
|
||||
|
||||
def days_since_last_freeze(self, project):
|
||||
"""
|
||||
Checks the last update for the frozen links
|
||||
:param project: project to check
|
||||
:return age in days(float) of the last update
|
||||
"""
|
||||
u = self.makeurl(['source', project, '_project'], { 'meta': '1' })
|
||||
f = http_GET(u)
|
||||
root = ET.parse(f).getroot()
|
||||
for entry in root.findall('entry'):
|
||||
if entry.get('name') == '_frozenlinks':
|
||||
return (time.time() - float(entry.get('mtime')))/3600/24
|
||||
return 100000 # quite some!
|
||||
|
||||
def find_openqa_state(self, project):
|
||||
"""
|
||||
Checks the openqa state of the project
|
||||
|
@@ -327,3 +327,19 @@ class TestApiCalls(unittest.TestCase):
|
||||
[{'path': 'standard/i586', 'pkg': 'glibc', 'state': 'broken'},
|
||||
{'path': 'standard/i586', 'pkg': 'openSUSE-images', 'state': 'failed'}]])
|
||||
|
||||
@httpretty.activate
|
||||
def test_check_project_status_red(self):
|
||||
"""
|
||||
Test checking project status
|
||||
"""
|
||||
|
||||
# Register OBS
|
||||
self.obs.register_obs()
|
||||
|
||||
# Testing frozen mtime
|
||||
self.obs.responses['GET']['/source/openSUSE:Factory:Staging:A/_project'] = 'project-a-metalist.xml'
|
||||
self.assertTrue(self.obs.api.days_since_last_freeze('openSUSE:Factory:Staging:A') > 8)
|
||||
|
||||
# U == unfrozen
|
||||
self.obs.responses['GET']['/source/openSUSE:Factory:Staging:U/_project'] = 'project-u-metalist.xml'
|
||||
self.assertTrue(self.obs.api.days_since_last_freeze('openSUSE:Factory:Staging:U') > 1000)
|
||||
|
4
tests/fixtures/project-a-metalist.xml
vendored
Normal file
4
tests/fixtures/project-a-metalist.xml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<directory name="_project" rev="808" vrev="" srcmd5="b035cbe899ee7b4e92e1f19f3a7de02c">
|
||||
<entry name="_frozenlinks" md5="546a8835fe25c5400c9fa0fa731f1185" size="81720" mtime="1393152777" />
|
||||
<entry name="_meta" md5="92b5f2ed45df2fedd5030725083d36c5" size="1200" mtime="1393847918" />
|
||||
</directory>
|
3
tests/fixtures/project-u-metalist.xml
vendored
Normal file
3
tests/fixtures/project-u-metalist.xml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<directory name="_project" rev="808" vrev="" srcmd5="b035cbe899ee7b4e92e1f19f3a7de02c">
|
||||
<entry name="_meta" md5="92b5f2ed45df2fedd5030725083d36c5" size="1200" mtime="1393847918" />
|
||||
</directory>
|
Reference in New Issue
Block a user