1ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch# Copyright 2013 The Chromium Authors. All rights reserved.
2ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch# Use of this source code is governed by a BSD-style license that can be
3ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch# found in the LICENSE file.
4ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochfrom PIL import Image
6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochimport unittest
7ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochimport sets
8ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
9ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochfrom tests.rendering_test_manager import mock_cloud_bucket
10ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochfrom tests.rendering_test_manager import cloud_bucket
11ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochfrom tools import rendering_test_manager
12ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochfrom tools import image_tools
13ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
14ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
15ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochclass BucketRenderingTestManagerUnitTest(unittest.TestCase):
16ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
17ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def setUp(self):
18ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Set up structures that will be reused throughout testing.
19ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket = mock_cloud_bucket.MockCloudBucket()
20ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager = rendering_test_manager.RenderingTestManager(self.bucket)
21ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.white = Image.new('RGB', (25, 25), (255, 255, 255))
22ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.red = Image.new('RGB', (25, 25), (255, 0, 0))
23ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.black = Image.new('RGB', (25, 25), (0, 0, 0))
24ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
25ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testUploadImage(self):
26ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
27ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload some images to the datastore.
28ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/white.png', self.white)
29ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/black.png', self.black)
30ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/red.png', self.red)
31ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Confirm that the images actually got uploaded.
32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['path/to/white.png'],
33ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
34ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['path/to/black.png'],
35ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.black))
36ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['path/to/red.png'],
37ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.red))
38ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
39ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testDownloadImage(self):
40ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
41ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload some images to the datastore.
42ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/white.png', self.white)
43ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/black.png', self.black)
44ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadImage('path/to/red.png', self.red)
45ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that the DownloadImage function gets the correct images.
46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(
47ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(
48ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch            self.manager.DownloadImage('path/to/white.png')),
49ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(self.white))
50ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(
51ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(
52ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch            self.manager.DownloadImage('path/to/black.png')),
53ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(self.black))
54ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(
55ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(
56ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch            self.manager.DownloadImage('path/to/red.png')),
57ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(self.red))
58ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that the DownloadImage function throws an error for a
59ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    #  nonexistant image.
60ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertRaises(cloud_bucket.FileNotFoundError,
61ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      self.manager.DownloadImage,
62ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      'path/to/yellow.png')
63ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
64ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testUploadTest(self):
65ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
66ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload some tests to the datastore.
67ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.black])
68ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test2', [self.black, self.black])
69ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Confirm that the tests were successfully uploaded.
70ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['tests/test1/expected.png'],
71ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
72ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['tests/test1/mask.png'],
73ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
74ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['tests/test2/expected.png'],
75ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.black))
76ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(self.bucket.datastore['tests/test2/mask.png'],
77ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.black))
78ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
79ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testRunTest(self):
80ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
81ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
82ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test1', [self.red, self.red])
83ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.RunTest('test1', 'run1', self.black)
84ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(
85ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        self.bucket.datastore['failures/test1/run1/actual.png'],
86ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        image_tools.SerializeImage(self.black))
87ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.RunTest('test1', 'run2', self.red)
88ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertFalse(
89ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        self.bucket.datastore.has_key('failures/test1/run2/actual.png'))
90ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertRaises(cloud_bucket.FileNotFoundError, self.manager.RunTest,
91ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      'test2', 'run1', self.black)
92ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
93ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testGetTest(self):
94ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
95ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload some tests to the datastore
96ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.black])
97ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test2', [self.red, self.white])
98ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    test1 = self.manager.GetTest('test1')
99ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    test2 = self.manager.GetTest('test2')
100ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that GetTest gets the appropriate tests.
101ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(test1.expected),
102ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
103ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(test1.mask),
104ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
105ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(test2.expected),
106ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.red))
107ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(test2.mask),
108ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
109ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that GetTest throws an error for a nonexistant test.
110ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertRaises(
111ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        cloud_bucket.FileNotFoundError, self.manager.GetTest, 'test3')
112ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
113bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  def testTestExists(self):
114bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.bucket.Reset()
115bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.black])
116bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test2', [self.white, self.black])
117bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test1'))
118bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test2'))
119bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.TestExists('test3'))
120bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
121bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  def testFailureExists(self):
122bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.bucket.Reset()
123bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.white])
124bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RunTest('test1', 'run1', self.black)
125bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RunTest('test1', 'run2', self.white)
126bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.FailureExists('test1', 'run1'))
127bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.FailureExists('test1', 'run2'))
128bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
129bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  def testRemoveTest(self):
130bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.bucket.Reset()
131bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.white])
132bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test2', [self.white, self.white])
133bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test1'))
134bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test2'))
135bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RemoveTest('test1')
136bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.TestExists('test1'))
137bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test2'))
138bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RemoveTest('test2')
139bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.TestExists('test1'))
140bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.TestExists('test2'))
141bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
142bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  def testRemoveFailure(self):
143bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.bucket.Reset()
144bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.white])
145bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.UploadTest('test2', [self.white, self.white])
146bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RunTest('test1', 'run1', self.black)
147bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RunTest('test1', 'run2', self.black)
148bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.manager.RemoveFailure('test1', 'run1')
149bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertFalse(self.manager.FailureExists('test1', 'run1'))
150bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test1'))
151bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.FailureExists('test1', 'run2'))
152bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    self.assertTrue(self.manager.TestExists('test2'))
153bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
154ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testGetFailure(self):
155ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
156ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload a result
157ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test1', [self.red, self.red])
158ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.RunTest('test1', 'run1', self.black)
159ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    res = self.manager.GetFailure('test1', 'run1')
160ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that the function correctly got the result.
161ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(res.expected),
162ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.red))
163ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(res.diff),
164ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.white))
165ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(image_tools.SerializeImage(res.actual),
166ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      image_tools.SerializeImage(self.black))
167ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that the function raises an error when given non-existant results.
168ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertRaises(cloud_bucket.FileNotFoundError,
169ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      self.manager.GetFailure,
170ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      'test1', 'run2')
171ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertRaises(cloud_bucket.FileNotFoundError,
172ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      self.manager.GetFailure,
173ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      'test2', 'run1')
174ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
175ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  def testGetAllPaths(self):
176ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.bucket.Reset()
177ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Upload some tests.
178ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test1', [self.white, self.black])
179ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.manager.UploadTest('test2', [self.red, self.white])
180ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    # Check that the function gets all urls matching the prefix.
181ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(
182ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        sets.Set(self.manager.GetAllPaths('tests/test')),
183ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch        sets.Set(['tests/test1/expected.png',
184ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                  'tests/test1/mask.png',
185ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                  'tests/test2/expected.png',
186ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                  'tests/test2/mask.png']))
187ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(sets.Set(self.manager.GetAllPaths('tests/test1')),
188ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      sets.Set(['tests/test1/expected.png',
189ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                                'tests/test1/mask.png']))
190ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch    self.assertEquals(sets.Set(self.manager.GetAllPaths('tests/test3')),
191ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch                      sets.Set())
192ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
193ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch
194ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochif __name__ == '__main__':
195ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  unittest.main()
196