Resolving these constructs usually involves techniques like Dependency Injection.
It is, however, rather simple to fix this error:
In calendarLib.py:
import homePageLib
class CalendarPage(object):
def clickHomePageLink(self):
[...]
return homePageLib.HomePage()
The code at module level is executed at import time. Using the from [...] import [...]
syntax requires the module to be completely initialized to succeed.
A simple import [...]
does not, because no symbols are accessed, thus breaking the dependency chain.