Generate JSON

Generate JSON data so that tools can easily make use of the info
that reviewday generates.

A new reviewday.json file is generated that has data like

  {
    "generated": "2014-01-03 22:22:33",
    "projects": {
      "identity-api": {
        "https://review.openstack.org/#change,62961": {
          "owner": "Dolph Mathews",
          "score": 48,
          "cause": "No link",
          "feedback": {
            "lowest": 1,
            "highest": 1
          },
          "subject": "cleanup query_string documentation"
        }, ... (for each review uri)
      }, ... (for each project)
    }
  }

Change-Id: Idabafdadb3237410fa866c78d429cf46317fb3fe
This commit is contained in:
Brant Knudson 2013-12-30 15:20:52 -06:00
parent afd4564a6c
commit d5cc6b0bb2
1 changed files with 29 additions and 0 deletions

View File

@ -1,4 +1,6 @@
import json
import os
import tempfile
import html_helper
from Cheetah.Template import Template
from distutils.dir_util import copy_tree
@ -10,6 +12,31 @@ def prep_out_dir(out_dir):
copy_tree(report_files_dir, out_dir)
def _create_json(out_dir, name_space={}):
data = {
'generated': name_space['dts'],
'projects': {}, }
projects = data['projects']
for project_name in name_space['projects']:
projects[project_name] = {}
mps = name_space['projects'][project_name]
for mp in mps:
projects[project_name][mp.url] = {
'score': mp.score,
'cause': mp.cause,
'subject': mp.subject,
'owner': mp.owner_name,
'feedback': {'lowest': mp.lowest_feedback,
'highest': mp.highest_feedback, }, }
with tempfile.NamedTemporaryFile(dir=out_dir, delete=False) as f:
json.dump(data, f, indent=2)
os.rename(f.name, os.path.join(out_dir, 'reviewday.json'))
def create_report(out_dir, name_space={}):
filename = os.path.join(os.path.dirname(__file__), 'report.html')
report_text = open(filename).read()
@ -21,3 +48,5 @@ def create_report(out_dir, name_space={}):
out_file = open(os.path.join(out_dir, 'index.html'), "w")
out_file.write(str(t))
out_file.close()
_create_json(out_dir, name_space=name_space)