1*2abb3134SXin Li#!/usr/bin/python -S 2*2abb3134SXin Li# 3*2abb3134SXin Li# Copyright 2014 Google Inc. All rights reserved. 4*2abb3134SXin Li# 5*2abb3134SXin Li# Licensed under the Apache License, Version 2.0 (the "License"); 6*2abb3134SXin Li# you may not use this file except in compliance with the License. 7*2abb3134SXin Li# You may obtain a copy of the License at 8*2abb3134SXin Li# 9*2abb3134SXin Li# http://www.apache.org/licenses/LICENSE-2.0 10*2abb3134SXin Li# 11*2abb3134SXin Li# Unless required by applicable law or agreed to in writing, software 12*2abb3134SXin Li# distributed under the License is distributed on an "AS IS" BASIS, 13*2abb3134SXin Li# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*2abb3134SXin Li# See the License for the specific language governing permissions and 15*2abb3134SXin Li# limitations under the License. 16*2abb3134SXin Li 17*2abb3134SXin Li""" 18*2abb3134SXin Lihash_candidates_test.py: Tests for hash_candidates.py 19*2abb3134SXin Li""" 20*2abb3134SXin Li 21*2abb3134SXin Liimport cStringIO 22*2abb3134SXin Liimport unittest 23*2abb3134SXin Li 24*2abb3134SXin Liimport rappor 25*2abb3134SXin Liimport hash_candidates # module under test 26*2abb3134SXin Li 27*2abb3134SXin Li 28*2abb3134SXin LiSTDIN = """\ 29*2abb3134SXin Liapple 30*2abb3134SXin Libanana 31*2abb3134SXin Licarrot 32*2abb3134SXin Li""" 33*2abb3134SXin Li 34*2abb3134SXin LiEXPECTED_CSV_OUT = """\ 35*2abb3134SXin Liapple,5,1,26,26,38,34,63,62\r 36*2abb3134SXin Libanana,12,14,28,24,37,34,62,49\r 37*2abb3134SXin Licarrot,4,12,25,21,48,38,61,54\r 38*2abb3134SXin Li""" 39*2abb3134SXin Li 40*2abb3134SXin Li 41*2abb3134SXin Liclass HashCandidatesTest(unittest.TestCase): 42*2abb3134SXin Li 43*2abb3134SXin Li def setUp(self): 44*2abb3134SXin Li self.params = rappor.Params() 45*2abb3134SXin Li self.params.num_bloombits = 16 46*2abb3134SXin Li self.params.num_cohorts = 4 47*2abb3134SXin Li self.params.num_hashes = 2 48*2abb3134SXin Li 49*2abb3134SXin Li def testHash(self): 50*2abb3134SXin Li stdin = cStringIO.StringIO(STDIN) 51*2abb3134SXin Li stdout = cStringIO.StringIO() 52*2abb3134SXin Li 53*2abb3134SXin Li hash_candidates.HashCandidates(self.params, stdin, stdout) 54*2abb3134SXin Li 55*2abb3134SXin Li self.assertMultiLineEqual(EXPECTED_CSV_OUT, stdout.getvalue()) 56*2abb3134SXin Li 57*2abb3134SXin Li 58*2abb3134SXin Liif __name__ == '__main__': 59*2abb3134SXin Li unittest.main() 60