| #!/usr/bin/env python |
| # |
| # Copyright 2014 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 PIL import Image |
| |
| import ispy_api |
| from common import cloud_bucket |
| from common import mock_cloud_bucket |
| |
| |
| class ISpyApiTest(unittest.TestCase): |
| """Unittest for the ISpy API.""" |
| |
| def setUp(self): |
| self.cloud_bucket = mock_cloud_bucket.MockCloudBucket() |
| self.ispy = ispy_api.ISpyApi(self.cloud_bucket) |
| self.white_img = Image.new('RGBA', (10, 10), (255, 255, 255, 255)) |
| self.black_img = Image.new('RGBA', (10, 10), (0, 0, 0, 255)) |
| |
| def testGenerateExpectationsRunComparison(self): |
| self.ispy.GenerateExpectation( |
| 'device', 'test', '1.1.1.1', 'versions.json', |
| [self.white_img, self.white_img]) |
| self.ispy.UpdateExpectationVersion('1.1.1.1', 'versions.json') |
| self.ispy.PerformComparison( |
| 'test1', 'device', 'test', '1.1.1.1', 'versions.json', self.white_img) |
| expect_name = self.ispy._CreateExpectationName( |
| 'device', 'test', '1.1.1.1') |
| self.assertFalse(self.ispy._ispy.FailureExists('test1', expect_name)) |
| self.ispy.PerformComparison( |
| 'test2', 'device', 'test', '1.1.1.1','versions.json', self.black_img) |
| self.assertTrue(self.ispy._ispy.FailureExists('test2', expect_name)) |
| |
| def testUpdateExpectationVersion(self): |
| self.ispy.UpdateExpectationVersion('1.0.0.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('1.0.4.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('2.1.5.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('1.1.5.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('0.0.0.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('1.1.5.0', 'versions.json') |
| self.ispy.UpdateExpectationVersion('0.0.0.1', 'versions.json') |
| versions = json.loads(self.cloud_bucket.DownloadFile('versions.json')) |
| self.assertEqual(versions, |
| ['2.1.5.0', '1.1.5.0', '1.0.4.0', '1.0.0.0', '0.0.0.1', '0.0.0.0']) |
| |
| def testPerformComparisonAndPrepareExpectation(self): |
| self.assertFalse(self.ispy.CanRebaselineToTestRun('test')) |
| self.assertRaises( |
| cloud_bucket.FileNotFoundError, |
| self.ispy.PerformComparisonAndPrepareExpectation, |
| 'test', 'device', 'expect', '1.0', 'versions.json', |
| [self.white_img, self.white_img]) |
| self.assertTrue(self.ispy.CanRebaselineToTestRun('test')) |
| self.ispy.RebaselineToTestRun('test') |
| versions = json.loads(self.cloud_bucket.DownloadFile('versions.json')) |
| self.assertEqual(versions, ['1.0']) |
| self.ispy.PerformComparisonAndPrepareExpectation( |
| 'test1', 'device', 'expect', '1.1', 'versions.json', |
| [self.white_img, self.white_img]) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |