| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-08-11 12:13:14 +00:00
										 |  |  | import netrc, os, unittest, sys | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | from test import support | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | TEST_NETRC = """
 | 
					
						
							| 
									
										
										
										
											2010-12-02 02:58:07 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |  #this is a comment | 
					
						
							|  |  |  | #this is a comment | 
					
						
							|  |  |  | # this is a comment | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | machine foo login log1 password pass1 account acct1 | 
					
						
							| 
									
										
										
										
											2010-12-02 02:58:07 +00:00
										 |  |  | machine bar login log1 password pass# account acct1 | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | macdef macro1 | 
					
						
							|  |  |  | line1 | 
					
						
							|  |  |  | line2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | macdef macro2 | 
					
						
							|  |  |  | line3 | 
					
						
							|  |  |  | line4 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-04-16 01:38:40 +00:00
										 |  |  | default login log2 password pass2 | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  | temp_filename = support.TESTFN | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class NetrcTestCase(unittest.TestCase): | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-26 04:29:23 +00:00
										 |  |  |     def setUp(self): | 
					
						
							| 
									
										
										
										
											2003-08-11 12:13:14 +00:00
										 |  |  |         mode = 'w' | 
					
						
							|  |  |  |         if sys.platform not in ['cygwin']: | 
					
						
							|  |  |  |             mode += 't' | 
					
						
							|  |  |  |         fp = open(temp_filename, mode) | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  |         fp.write(TEST_NETRC) | 
					
						
							|  |  |  |         fp.close() | 
					
						
							| 
									
										
										
										
											2010-12-02 02:58:07 +00:00
										 |  |  |         self.nrc = netrc.netrc(temp_filename) | 
					
						
							| 
									
										
										
										
											2002-04-16 01:38:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-10-26 04:29:23 +00:00
										 |  |  |     def tearDown(self): | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  |         os.unlink(temp_filename) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def test_case_1(self): | 
					
						
							| 
									
										
										
										
											2010-12-02 02:58:07 +00:00
										 |  |  |         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#')) | 
					
						
							| 
									
										
										
										
											2002-04-16 01:38:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-02-17 14:51:41 +00:00
										 |  |  | def test_main(): | 
					
						
							| 
									
										
										
										
											2008-05-20 21:35:26 +00:00
										 |  |  |     support.run_unittest(NetrcTestCase) | 
					
						
							| 
									
										
										
										
											2002-04-16 01:38:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2002-03-22 02:48:57 +00:00
										 |  |  | if __name__ == "__main__": | 
					
						
							| 
									
										
										
										
											2003-02-17 14:51:41 +00:00
										 |  |  |     test_main() |