From 1977af9d551e6499f98a852e3c10952881d97e85 Mon Sep 17 00:00:00 2001 From: satishparande Date: Tue, 26 Jun 2012 15:36:39 +0530 Subject: [PATCH 1/6] Update master --- FizzBuzz.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/FizzBuzz.py b/FizzBuzz.py index 00b6ebd..375cfb7 100644 --- a/FizzBuzz.py +++ b/FizzBuzz.py @@ -1,6 +1,7 @@ """ Q1. Why is the report method untestable ? [2 pts] +report_file open and path is external collaborative (platform and system environment dependent) which is handled in the function so it is untestable. @@ -10,9 +11,7 @@ """ class FizzBuzz(object): - def report(self, numbers): - - report_file = open('c:/temp/fizzbuzz_report.txt', 'w') + def report(self, numbers, file_handle): for number in numbers: msg = str(number) + " " @@ -25,12 +24,14 @@ def report(self, numbers): fizzbuzz_found = True if fizzbuzz_found: - report_file.write(msg + "\n") + file_handle.write(msg + "\n") - report_file.close() + file_handle.close() if "__main__" == __name__: fb = FizzBuzz() - fb.report(range(100)) + file_handle = open('temp.txt', 'w') # can create open wrapper + fb.report(range(100), file_handle) + From 6b1f4fdbb1264dee83284cded284dc301f2aa1ba Mon Sep 17 00:00:00 2001 From: satishparande Date: Tue, 26 Jun 2012 18:02:09 +0530 Subject: [PATCH 2/6] Update master --- TestFizzBuzzStubbed.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/TestFizzBuzzStubbed.py b/TestFizzBuzzStubbed.py index 78ee454..64de647 100644 --- a/TestFizzBuzzStubbed.py +++ b/TestFizzBuzzStubbed.py @@ -5,7 +5,14 @@ Q3. What will be printed when we execute 'python FizzBuzzStubbed.py' ? [3 pts] - +setUpClass FizzBuzzStubbed +setup +test_report +teardown +setup +test_report +teardown +tearDownClass From ea74a8fc43a5e9b64712ed75a4b489cab88e4e46 Mon Sep 17 00:00:00 2001 From: satishparande Date: Tue, 26 Jun 2012 18:23:31 +0530 Subject: [PATCH 3/6] Update master --- FizzBuzz.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/FizzBuzz.py b/FizzBuzz.py index 375cfb7..577d092 100644 --- a/FizzBuzz.py +++ b/FizzBuzz.py @@ -11,8 +11,9 @@ """ class FizzBuzz(object): - def report(self, numbers, file_handle): + def report(self, numbers, fileWrapper): + fileWrapper.open() for number in numbers: msg = str(number) + " " fizzbuzz_found = False @@ -24,14 +25,29 @@ def report(self, numbers, file_handle): fizzbuzz_found = True if fizzbuzz_found: - file_handle.write(msg + "\n") + fileWrapper.write(msg + "\n") - file_handle.close() + fileWrapper.close() if "__main__" == __name__: fb = FizzBuzz() - file_handle = open('temp.txt', 'w') # can create open wrapper - fb.report(range(100), file_handle) + fileWrapper = FileWrapper('temp.txt', 'w') # can create open wrapper + fb.report(range(100), fileWrapper) +class FileWrapper: + def __init__(self, fname, mode): + self.filename = fname + self.mode = mode + + def open(self): + self.filehandle = open (self.filename, self.mode) + return self.filehandle + + def write(self, buff): + self.filehandle.write(msg)\ + + def close(self) + self.filehandle.close() + From f5a198cd023efa0f2bef1fc6f2095dbcb136c9ab Mon Sep 17 00:00:00 2001 From: satishparande Date: Tue, 26 Jun 2012 18:44:17 +0530 Subject: [PATCH 4/6] Update master --- TestFizzBuzzStubbed.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/TestFizzBuzzStubbed.py b/TestFizzBuzzStubbed.py index 64de647..d845e6e 100644 --- a/TestFizzBuzzStubbed.py +++ b/TestFizzBuzzStubbed.py @@ -24,16 +24,21 @@ """ class MyStub(object): - pass - - - - - + def __init__(self, values) + self.flag = False + self.values = [] + + def open(self) + self.flag = True + + def write(self,msg) + self.values.append(msg) + + def close(self) + self.flag = False - class TestFizzBuzzStubbed(unittest.TestCase): @classmethod From 4e636e18cf24b8636ee8e4842879f236940860e4 Mon Sep 17 00:00:00 2001 From: satishparande Date: Tue, 26 Jun 2012 19:28:12 +0530 Subject: [PATCH 5/6] Update master --- TestFizzBuzzMocked.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/TestFizzBuzzMocked.py b/TestFizzBuzzMocked.py index 6f1d0d5..9ba9dc2 100644 --- a/TestFizzBuzzMocked.py +++ b/TestFizzBuzzMocked.py @@ -17,7 +17,14 @@ def tearDown(self): self.fb = None def test_report(self): - pass + #create mock + report_wrapper_mock = self.mock() + #set expectations + + #call api + + #verify + report_wrapper_mock = From c8aa82d6ccd1cd1eb0d00e7bdf88df59d5ee9791 Mon Sep 17 00:00:00 2001 From: satishparande Date: Wed, 27 Jun 2012 10:51:38 +0530 Subject: [PATCH 6/6] Update master --- TestFizzBuzzMocked.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/TestFizzBuzzMocked.py b/TestFizzBuzzMocked.py index 9ba9dc2..55d19e8 100644 --- a/TestFizzBuzzMocked.py +++ b/TestFizzBuzzMocked.py @@ -18,13 +18,17 @@ def tearDown(self): def test_report(self): #create mock - report_wrapper_mock = self.mock() - #set expectations - - #call api - - #verify - report_wrapper_mock = + mockFileProvider = self.mock() + mockFileWrapper = self.mockFileProvider('report.txt', 'w') + #replay + self.replay() + #Call the report method with mocked filewrapper + numbers=range(100) + FizzBuzz.report(self.numbers,self.mockFileWrapper) + #verify + self.verify() + +