• Jérome Perrin's avatar
    ProcessingNodeTestCase: also setRequest in processing_node · 18deb716
    Jérome Perrin authored
    This is done on the process running test (by
    ERP5TypeTestCaseRequestConnection) and when using timerserver loop (by
    TimerServer which calls publish_module), but this was never set in
    processing_node.
    
    Before 3b874e49 (ERP5Type/tests: review requests in tests, 2023-04-19)
    getRequest could find a request anyway, because the test pached
    getRequest to find a request from the app, but after this change
    executing activities in an instance running with runUnitTest without
    test specified failed with:
    
        Module importlib, line 37, in import_module
          __import__(name)
        Module Products.ERP5Type.dynamic.component_package, line 412, in load_module
          return self.__load_module(fullname)
        Module Products.ERP5Type.dynamic.component_package, line 379, in __load_module
          erp5.component.ref_manager.add_module(module)
        Module Products.ERP5Type.dynamic.dynamic_module, line 75, in add_module
          self.add_request(get_request())
        Module Products.ERP5Type.dynamic.dynamic_module, line 53, in add_request
          self.setdefault(last_sync, (WeakSet(), set()))[0].add(request_obj)
        Module _weakrefset, line 86, in add
          self.data.add(ref(item, self._remove))
      TypeError: cannot create weak reference to 'NoneType' object
    
    ( maybe we remove processing_node and use only timerserver, these two
    methods are more or less equivalent for simple cases and timerserver is
    closer to what a "real" zope does )
    18deb716
ProcessingNodeTestCase.py 15.2 KB