aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/rebaseline_server/imagepairset.py
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-17 14:22:02 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-17 14:22:02 +0000
commitd1c85d29204ad94950b23014c03e781409b9b682 (patch)
treee6c068261660cbeb9d0f9f6cd9ce149d66b90625 /gm/rebaseline_server/imagepairset.py
parent1d1f2347d303852172fb7629c27d295ef68d9a3c (diff)
rebaseline_server: make intermediate JSON specify base urls for diff images
BUG=skia:1919,skia:2230 NOTREECHECKS=True NOTRY=True R=rmistry@google.com Author: epoger@google.com Review URL: https://codereview.chromium.org/196533021 git-svn-id: http://skia.googlecode.com/svn/trunk@13830 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/rebaseline_server/imagepairset.py')
-rw-r--r--gm/rebaseline_server/imagepairset.py50
1 files changed, 38 insertions, 12 deletions
diff --git a/gm/rebaseline_server/imagepairset.py b/gm/rebaseline_server/imagepairset.py
index 26c833e1b0..48c3064718 100644
--- a/gm/rebaseline_server/imagepairset.py
+++ b/gm/rebaseline_server/imagepairset.py
@@ -9,6 +9,10 @@ found in the LICENSE file.
ImagePairSet class; see its docstring below.
"""
+# System-level imports
+import posixpath
+
+# Local imports
import column
# Keys used within dictionary representation of ImagePairSet.
@@ -16,10 +20,15 @@ import column
KEY__EXTRACOLUMNHEADERS = 'extraColumnHeaders'
KEY__IMAGEPAIRS = 'imagePairs'
KEY__IMAGESETS = 'imageSets'
-KEY__IMAGESETS__BASE_URL = 'baseUrl'
-KEY__IMAGESETS__DESCRIPTION = 'description'
+KEY__IMAGESETS__FIELD__BASE_URL = 'baseUrl'
+KEY__IMAGESETS__FIELD__DESCRIPTION = 'description'
+KEY__IMAGESETS__SET__DIFFS = 'diffs'
+KEY__IMAGESETS__SET__IMAGE_A = 'imageA'
+KEY__IMAGESETS__SET__IMAGE_B = 'imageB'
+KEY__IMAGESETS__SET__WHITEDIFFS = 'whiteDiffs'
DEFAULT_DESCRIPTIONS = ('setA', 'setB')
+DIFF_BASE_URL = '/static/generated-images'
class ImagePairSet(object):
@@ -42,16 +51,18 @@ class ImagePairSet(object):
self._extra_column_tallies = {} # maps column_id -> values
# -> instances_per_value
self._image_pair_dicts = []
+ self._image_base_url = None
+ self._diff_base_url = DIFF_BASE_URL
def add_image_pair(self, image_pair):
"""Adds an ImagePair; this may be repeated any number of times."""
# Special handling when we add the first ImagePair...
if not self._image_pair_dicts:
- self._base_url = image_pair.base_url
+ self._image_base_url = image_pair.base_url
- if image_pair.base_url != self._base_url:
+ if image_pair.base_url != self._image_base_url:
raise Exception('added ImagePair with base_url "%s" instead of "%s"' % (
- image_pair.base_url, self._base_url))
+ image_pair.base_url, self._image_base_url))
self._image_pair_dicts.append(image_pair.as_dict())
extra_columns_dict = image_pair.extra_columns_dict
if extra_columns_dict:
@@ -127,14 +138,29 @@ class ImagePairSet(object):
Uses the KEY__* constants as keys.
"""
+ key_description = KEY__IMAGESETS__FIELD__DESCRIPTION
+ key_base_url = KEY__IMAGESETS__FIELD__BASE_URL
return {
KEY__EXTRACOLUMNHEADERS: self._column_headers_as_dict(),
KEY__IMAGEPAIRS: self._image_pair_dicts,
- KEY__IMAGESETS: [{
- KEY__IMAGESETS__BASE_URL: self._base_url,
- KEY__IMAGESETS__DESCRIPTION: self._descriptions[0],
- }, {
- KEY__IMAGESETS__BASE_URL: self._base_url,
- KEY__IMAGESETS__DESCRIPTION: self._descriptions[1],
- }],
+ KEY__IMAGESETS: {
+ KEY__IMAGESETS__SET__IMAGE_A: {
+ key_description: self._descriptions[0],
+ key_base_url: self._image_base_url,
+ },
+ KEY__IMAGESETS__SET__IMAGE_B: {
+ key_description: self._descriptions[1],
+ key_base_url: self._image_base_url,
+ },
+ KEY__IMAGESETS__SET__DIFFS: {
+ key_description: 'color difference per channel',
+ key_base_url: posixpath.join(
+ self._diff_base_url, 'diffs'),
+ },
+ KEY__IMAGESETS__SET__WHITEDIFFS: {
+ key_description: 'differing pixels in white',
+ key_base_url: posixpath.join(
+ self._diff_base_url, 'whitediffs'),
+ },
+ },
}