mirror of
https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu
synced 2025-02-13 15:37:02 +00:00
tests/mock_swift.py: Support adding testinfo.json
This commit is contained in:
parent
50673de2d8
commit
4df8700f8b
@ -8,6 +8,7 @@ import sys
|
|||||||
import socket
|
import socket
|
||||||
import time
|
import time
|
||||||
import tempfile
|
import tempfile
|
||||||
|
import json
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from http.server import HTTPServer, BaseHTTPRequestHandler
|
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||||||
@ -25,7 +26,7 @@ class SwiftHTTPRequestHandler(BaseHTTPRequestHandler):
|
|||||||
/container/path/result.tar) or listing the container contents
|
/container/path/result.tar) or listing the container contents
|
||||||
(/container/?prefix=foo&delimiter=@&marker=foo/bar).
|
(/container/?prefix=foo&delimiter=@&marker=foo/bar).
|
||||||
'''
|
'''
|
||||||
# map container -> result.tar path -> (exitcode, testpkg-version)
|
# map container -> result.tar path -> (exitcode, testpkg-version[, testinfo])
|
||||||
results = {}
|
results = {}
|
||||||
|
|
||||||
def do_GET(self):
|
def do_GET(self):
|
||||||
@ -43,7 +44,12 @@ class SwiftHTTPRequestHandler(BaseHTTPRequestHandler):
|
|||||||
self.send_error(404, 'File not found (only result.tar supported)')
|
self.send_error(404, 'File not found (only result.tar supported)')
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
(exitcode, pkgver) = self.results[container][os.path.dirname(path)]
|
fields = self.results[container][os.path.dirname(path)]
|
||||||
|
try:
|
||||||
|
(exitcode, pkgver, testinfo) = fields
|
||||||
|
except ValueError:
|
||||||
|
(exitcode, pkgver) = fields
|
||||||
|
testinfo = None
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self.send_error(404, 'File not found')
|
self.send_error(404, 'File not found')
|
||||||
return
|
return
|
||||||
@ -65,6 +71,13 @@ class SwiftHTTPRequestHandler(BaseHTTPRequestHandler):
|
|||||||
ti = tarfile.TarInfo('testpkg-version')
|
ti = tarfile.TarInfo('testpkg-version')
|
||||||
ti.size = len(contents)
|
ti.size = len(contents)
|
||||||
results.addfile(ti, io.BytesIO(contents))
|
results.addfile(ti, io.BytesIO(contents))
|
||||||
|
# add testinfo.json
|
||||||
|
if testinfo:
|
||||||
|
contents = json.dumps(testinfo).encode()
|
||||||
|
ti = tarfile.TarInfo('testinfo.json')
|
||||||
|
ti.size = len(contents)
|
||||||
|
results.addfile(ti, io.BytesIO(contents))
|
||||||
|
|
||||||
self.wfile.write(tar.getvalue())
|
self.wfile.write(tar.getvalue())
|
||||||
|
|
||||||
def list_container(self, container, query):
|
def list_container(self, container, query):
|
||||||
@ -107,7 +120,7 @@ class AutoPkgTestSwiftServer:
|
|||||||
'''Set served results.
|
'''Set served results.
|
||||||
|
|
||||||
results is a map: container -> result.tar path ->
|
results is a map: container -> result.tar path ->
|
||||||
(exitcode, testpkg-version)
|
(exitcode, testpkg-version, testinfo)
|
||||||
'''
|
'''
|
||||||
SwiftHTTPRequestHandler.results = results
|
SwiftHTTPRequestHandler.results = results
|
||||||
|
|
||||||
@ -145,7 +158,7 @@ if __name__ == '__main__':
|
|||||||
srv = AutoPkgTestSwiftServer()
|
srv = AutoPkgTestSwiftServer()
|
||||||
srv.set_results({'autopkgtest-series': {
|
srv.set_results({'autopkgtest-series': {
|
||||||
'series/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1'),
|
'series/i386/d/darkgreen/20150101_100000@': (0, 'darkgreen 1'),
|
||||||
'series/i386/g/green/20150101_100000@': (0, 'green 1'),
|
'series/i386/g/green/20150101_100000@': (0, 'green 1', {'custom_environment': ['ADT_TEST_TRIGGERS=green']}),
|
||||||
'series/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1'),
|
'series/i386/l/lightgreen/20150101_100000@': (0, 'lightgreen 1'),
|
||||||
'series/i386/l/lightgreen/20150101_100101@': (4, 'lightgreen 2'),
|
'series/i386/l/lightgreen/20150101_100101@': (4, 'lightgreen 2'),
|
||||||
'series/i386/l/lightgreen/20150101_100102@': (0, 'lightgreen 3'),
|
'series/i386/l/lightgreen/20150101_100102@': (0, 'lightgreen 3'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user