Uploaded image for project: 'Qpid Dispatch'
  1. Qpid Dispatch
  2. DISPATCH-2063

In system_test.Logger, a __str__ must be a function, not a string @property

    XMLWordPrintableJSON

Details

    • Test
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.15.0
    • 1.16.0
    • Tests
    • None

    Description

          def dump(self):
              print(self)
              sys.stdout.flush()
      
          @property
          def __str__(self):
              lines = [self.title]
              for ts, msg in self.logs:
                  lines.append("%s %s" % (ts, msg))
              res = str('\n'.join(lines))
              return res
      

      When dump() runs, Python's print() looks for a _str_ attribute on the argument, it finds it and tries to call it (as a function). But here it is a property which evaluates to a string, so this all fails with

      71: ======================================================================
      71: ERROR: test_01_concurrent_requests (system_tests_http1_adaptor.Http1AdaptorEdge2EdgeTest)
      71: Test multiple concurrent clients sending streaming messages
      71: ----------------------------------------------------------------------
      71: Traceback (most recent call last):
      71:   File "/home/jdanek/repos/qpid/qpid-dispatch/tests/http1_tests.py", line 485, in test_01_concurrent_requests
      71:     client.dump_log()
      71:   File "/home/jdanek/repos/qpid/qpid-dispatch/tests/http1_tests.py", line 207, in dump_log
      71:     self._logger.dump()
      71:   File "/home/jdanek/repos/qpid/qpid-dispatch/tests/system_test.py", line 1424, in dump
      71:     print(self)
      71: TypeError: 'str' object is not callable
      

      Attachments

        Activity

          People

            jdanek Jiri Daněk
            jdanek Jiri Daněk
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: