import netrc, os, unittest, sys from test import test_support TEST_NETRC = """ #this is a comment #this is a comment # this is a comment machine foo login log1 password pass1 account acct1 machine bar login log1 password pass# account acct1 macdef macro1 line1 line2 macdef macro2 line3 line4 default login log2 password pass2 """ temp_filename = test_support.TESTFN class NetrcTestCase(unittest.TestCase): def setUp (self): mode = 'w' if sys.platform not in ['cygwin']: mode += 't' fp = open(temp_filename, mode) fp.write(TEST_NETRC) fp.close() self.nrc = netrc.netrc(temp_filename) def tearDown (self): os.unlink(temp_filename) def test_case_1(self): self.assertEqual(self.nrc.hosts['foo'], ('log1', 'acct1', 'pass1')) self.assertEqual(self.nrc.hosts['default'], ('log2', None, 'pass2')) def test_macros(self): self.assertEqual(self.nrc.macros, {'macro1':['line1\n', 'line2\n'], 'macro2':['line3\n', 'line4\n']}) def test_parses_passwords_with_hash_character(self): self.assertEqual(self.nrc.hosts['bar'], ('log1', 'acct1', 'pass#')) def test_main(): test_support.run_unittest(NetrcTestCase) if __name__ == "__main__": test_main()