Fix a regression with NIS and improve code and testing.
Review Request #11050 — Created June 21, 2020 and submitted
The NIS backend regressed a while back when we reorganized the modules.
import nisstatements ended up importing our backend, rather than
nismodule. We only recently started hearing about this,
indicating that NIS authentication isn't widely used, but is still
used by some.
This change fixes the core issue by enabling
__future__.absolute_import, and enhances the code to be more testable
and address some old code quirks. A new unit test suite was added to
ensure that all NIS behavior works as expected.
Unit tests pass.