Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(471)

Side by Side Diff: grit/format/policy_templates/writers/writer_unittest_common.py

Issue 1438403002: Remove contents of grit's git-svn-mirror repository. (Closed) Base URL: https://chromium.googlesource.com/external/grit-i18n@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 '''Common tools for unit-testing writers.'''
7
8
9 import os
10 import tempfile
11 import unittest
12 import StringIO
13
14 from grit import grd_reader
15 from grit import util
16 from grit.tool import build
17
18
19 class DummyOutput(object):
20 def __init__(self, type, language, file = 'hello.gif'):
21 self.type = type
22 self.language = language
23 self.file = file
24 def GetType(self):
25 return self.type
26 def GetLanguage(self):
27 return self.language
28 def GetOutputFilename(self):
29 return self.file
30
31
32 class WriterUnittestCommon(unittest.TestCase):
33 '''Common class for unittesting writers.'''
34
35 def PrepareTest(self, policy_json):
36 '''Prepares and parses a grit tree along with a data structure of policies.
37
38 Args:
39 policy_json: The policy data structure in JSON format.
40 '''
41 # First create a temporary file that contains the JSON policy list.
42 tmp_file_name = 'test.json'
43 tmp_dir_name = tempfile.gettempdir()
44 json_file_path = tmp_dir_name + '/' + tmp_file_name
45 with open(json_file_path, 'w') as f:
46 f.write(policy_json.strip())
47 # Then assemble the grit tree.
48 grd_text = '''
49 <grit base_dir="." latest_public_release="0" current_release="1" source_lang _id="en">
50 <release seq="1">
51 <structures>
52 <structure name="IDD_POLICY_SOURCE_FILE" file="%s" type="policy_templa te_metafile" />
53 </structures>
54 </release>
55 </grit>''' % json_file_path
56 grd_string_io = StringIO.StringIO(grd_text)
57 # Parse the grit tree and load the policies' JSON with a gatherer.
58 grd = grd_reader.Parse(grd_string_io, dir=tmp_dir_name)
59 grd.SetOutputLanguage('en')
60 grd.RunGatherers()
61 # Remove the policies' JSON.
62 os.unlink(json_file_path)
63 return grd
64
65 def GetOutput(self, grd, env_lang, env_defs, out_type, out_lang):
66 '''Generates an output of a writer.
67
68 Args:
69 grd: The root of the grit tree.
70 env_lang: The environment language.
71 env_defs: Environment definitions.
72 out_type: Type of the output node for which output will be generated.
73 This selects the writer.
74 out_lang: Language of the output node for which output will be generated.
75
76 Returns:
77 The string of the template created by the writer.
78 '''
79 grd.SetOutputLanguage(env_lang)
80 grd.SetDefines(env_defs)
81 buf = StringIO.StringIO()
82 build.RcBuilder.ProcessNode(grd, DummyOutput(out_type, out_lang), buf)
83 return buf.getvalue()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698