aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2016-01-15 16:18:58 +0100
committerSimon Sapin <simon.sapin@exyr.org>2016-01-15 18:13:12 +0100
commit2222f345c8a024d319f6f6f89d2517c3633c8c6d (patch)
tree1c831eb7a5cc056b7b6e1f65a6906f9dfc3c76e2
parent9d29c3d2f52946e02c92ce7c31ac74433c2c6f8e (diff)
downloadservo-2222f345c8a024d319f6f6f89d2517c3633c8c6d.tar.gz
servo-2222f345c8a024d319f6f6f89d2517c3633c8c6d.zip
Make the properties list JSON and add some more info.
-rw-r--r--[-rwxr-xr-x]components/style/list_properties.py20
-rw-r--r--python/servo/testing_commands.py5
2 files changed, 18 insertions, 7 deletions
diff --git a/components/style/list_properties.py b/components/style/list_properties.py
index a787cbb8706..63bbe247511 100755..100644
--- a/components/style/list_properties.py
+++ b/components/style/list_properties.py
@@ -1,14 +1,24 @@
-#!/bin/env python2.7
+#!/usr/bin/env python
+
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os.path
import sys
+import json
style = os.path.dirname(__file__)
sys.path.insert(0, os.path.join(style, "Mako-0.9.1.zip"))
-
from mako.template import Template
+
template = Template(filename=os.path.join(style, "properties.mako.rs"), input_encoding='utf8')
template.render()
-properties = template.module.LONGHANDS + template.module.SHORTHANDS
-for name in sorted(p.name for p in properties):
- print(name)
+properties = dict(
+ (p.name, {
+ "flag": p.experimental,
+ "shorthand": hasattr(p, "sub_properties")
+ })
+ for p in template.module.LONGHANDS + template.module.SHORTHANDS
+)
+print(json.dumps(properties, indent=4))
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 80d4515c8e4..acd92dea9a2 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -15,6 +15,7 @@ import sys
import os
import os.path as path
import subprocess
+import json
from collections import OrderedDict
from time import time
@@ -158,10 +159,10 @@ class MachCommands(CommandBase):
@CommandArgument('test_name', nargs=argparse.REMAINDER,
help="Only run tests that match this pattern or file path")
def test_unit(self, test_name=None, package=None):
- properties = subprocess.check_output([
+ properties = json.loads(subprocess.check_output([
sys.executable,
path.join(self.context.topdir, "components", "style", "list_properties.py")
- ]).splitlines()
+ ]))
assert len(properties) >= 100
assert "margin-top" in properties
assert "margin" in properties