title: Python unittest - testing class methods fields return <built-in function input> instead of value set
body: <p>I'm trying to unit test class <code>MyClass</code> method <code>base64DecodeInput</code>.
  Here is some code I have:</p>
  
  <p>Method in system under test class:</p>
  
  <pre><code>class MyClass(object):
  
      def __init__(self, input):
          self.input = input
  
      def base64DecodeInput(self):
          return base64.b64decode(urllib.parse.unquote(self.input))
  
      def getInput(self): # getter
          return self.input
  #...
  </code></pre>
  
  <p>My test case class:</p>
  
  <pre><code>class TestMyClass(unittest.TestCase):
  
      input = 'QVNERkdISktAIyQlXiYqKDIzNDU2Nzg5MH0iPD4%2FP3s6Pgo%3D'
      decodedInput = 'ASDFGHJK@#$%^&amp;*(234567890}"&lt;&gt;??{:&gt;'
  
      def setUp(self):
          self.sut = myclass.MyClass(input)
  
      def testBase64UrlDecode(self):
          self.assertEqual(self.sut.base64DecodeInput(), self.decodedInput)
  
  #....
  </code></pre>
  
  <p>When I run my tests:
  <code>python3 -m unittest my_class_tests</code></p>
  
  <p>I'm getting
  <code>TypeError: argument of type 'builtin_function_or_method' is not iterable</code></p>
  
  <p>In fact, my getter <code>getInput(self)</code> returns <code>&lt;built-in function input&gt;</code>.
  It indicates, that the my MyClass object in not the same as I create it in the setUp method.</p>
  
  <p>I'm not experienced with python, so could someone explain to me, what is going on here?</p>