| Index: tools/deep_memory_profiler/visualizer/app_unittest.py
|
| diff --git a/tools/deep_memory_profiler/visualizer/app_unittest.py b/tools/deep_memory_profiler/visualizer/app_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..03110dce026a6819939727b2c07708095dd4a3db
|
| --- /dev/null
|
| +++ b/tools/deep_memory_profiler/visualizer/app_unittest.py
|
| @@ -0,0 +1,79 @@
|
| +# Copyright 2013 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import json
|
| +import unittest
|
| +
|
| +from google.appengine.api import files
|
| +from google.appengine.ext import ndb
|
| +from google.appengine.ext import testbed
|
| +from google.appengine.ext.blobstore import BlobInfo
|
| +
|
| +import services
|
| +
|
| +
|
| +class ServicesTest(unittest.TestCase):
|
| + @staticmethod
|
| + def CreateBlob(path):
|
| + # Initialize blob dictionary to return.
|
| + blob = {}
|
| +
|
| + # Read sample file.
|
| + blob['json_str'] = open(path, 'r').read()
|
| +
|
| + # Create file in blobstore according to sample file.
|
| + file_name = files.blobstore.create(mime_type='text/plain')
|
| + with files.open(file_name, 'a') as f:
|
| + f.write(blob['json_str'])
|
| + files.finalize(file_name)
|
| +
|
| + # Get BlobInfo of sample file.
|
| + blob['blob_info'] = BlobInfo.get(files.blobstore.get_blob_key(file_name))
|
| +
|
| + return blob
|
| +
|
| + def setUp(self):
|
| + self.testbed = testbed.Testbed()
|
| + self.testbed.activate()
|
| + self.testbed.init_all_stubs()
|
| +
|
| + # Read sample file.
|
| + self.correct_blob = ServicesTest.CreateBlob('testdata/sample.json')
|
| + self.error_blob = ServicesTest.CreateBlob('testdata/error_sample.json')
|
| +
|
| + def tearDown(self):
|
| + self.testbed.deactivate()
|
| +
|
| + def testProfiler(self):
|
| + correct_blob = self.correct_blob
|
| + # Call services function to create Profiler entity.
|
| + run_id = services.CreateProfiler(correct_blob['blob_info'])
|
| +
|
| + # Test GetProfiler
|
| + self.assertEqual(services.GetProfiler(run_id), correct_blob['json_str'])
|
| +
|
| + # Create Profiler entity with the same file again and check uniqueness.
|
| + services.CreateProfiler(correct_blob['blob_info'])
|
| + self.assertEqual(services.Profiler.query().count(), 1)
|
| +
|
| + def testTemplate(self):
|
| + correct_blob = self.correct_blob
|
| + # Call services function to create template entities.
|
| + services.CreateTemplates(correct_blob['blob_info'])
|
| +
|
| + # Test templates being stored in database correctly.
|
| + json_obj = json.loads(correct_blob['json_str'])
|
| + for content in json_obj['templates'].values():
|
| + template_entity = ndb.Key('Template', json.dumps(content)).get()
|
| + self.assertEqual(template_entity.content, content)
|
| +
|
| + # Create template entities with the same file again and check uniqueness.
|
| + services.CreateTemplates(correct_blob['blob_info'])
|
| + self.assertEqual(services.Template.query().count(), 2)
|
| +
|
| + def testErrorBlob(self):
|
| + error_blob = self.error_blob
|
| + # Test None when default template not indicated or found in templates.
|
| + dflt_tmpl = services.CreateTemplates(error_blob['blob_info'])
|
| + self.assertIsNone(dflt_tmpl)
|
|
|