fix windows32 issues, introduce a simplistic path.samefile for it, fix tests
--HG-- branch : trunk
This commit is contained in:
		
							parent
							
								
									c02719f44c
								
							
						
					
					
						commit
						30710a9cd6
					
				|  | @ -300,6 +300,10 @@ newline will be removed from the end of each line. """ | ||||||
|             else: |             else: | ||||||
|                 res.sort() |                 res.sort() | ||||||
| 
 | 
 | ||||||
|  |     def samefile(self, other): | ||||||
|  |         """ return True if other refers to the same stat object as self. """ | ||||||
|  |         return self.strpath == str(other) | ||||||
|  | 
 | ||||||
| class FNMatcher: | class FNMatcher: | ||||||
|     def __init__(self, pattern): |     def __init__(self, pattern): | ||||||
|         self.pattern = pattern |         self.pattern = pattern | ||||||
|  |  | ||||||
|  | @ -70,7 +70,7 @@ class PosixPath(common.PathBase): | ||||||
| 
 | 
 | ||||||
|     def samefile(self, other): |     def samefile(self, other): | ||||||
|         """ return True if other refers to the same stat object as self. """ |         """ return True if other refers to the same stat object as self. """ | ||||||
|         return py.std.os.path.samefile(str(self), str(other)) |         return py.error.checked_call(os.path.samefile, str(self), str(other)) | ||||||
| 
 | 
 | ||||||
| def getuserid(user): | def getuserid(user): | ||||||
|     import pwd |     import pwd | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								conftest.py
								
								
								
								
							
							
						
						
									
										11
									
								
								conftest.py
								
								
								
								
							|  | @ -1,6 +1,15 @@ | ||||||
|  | import py | ||||||
|  | 
 | ||||||
| pytest_plugins = '_pytest doctest pytester'.split() | pytest_plugins = '_pytest doctest pytester'.split() | ||||||
| 
 | 
 | ||||||
| rsyncdirs = ['conftest.py', 'py', 'doc', 'testing'] | 
 | ||||||
|  | rsyncdirs = ['conftest.py', 'bin', 'py', 'doc', 'testing'] | ||||||
|  | try: | ||||||
|  |     import execnet | ||||||
|  | except ImportError: | ||||||
|  |     pass | ||||||
|  | else: | ||||||
|  |     rsyncdirs.append(str(py.path.local(execnet.__file__).dirpath())) | ||||||
| 
 | 
 | ||||||
| import py | import py | ||||||
| def pytest_addoption(parser): | def pytest_addoption(parser): | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ def test_unicode_encoding(): | ||||||
|         l = [] |         l = [] | ||||||
|         tw = py.io.TerminalWriter(l.append, encoding=encoding) |         tw = py.io.TerminalWriter(l.append, encoding=encoding) | ||||||
|         tw.line(msg) |         tw.line(msg) | ||||||
|         assert l[0] == msg.encode(encoding) |         assert l[0].strip() == msg.encode(encoding) | ||||||
| 
 | 
 | ||||||
| class BaseTests: | class BaseTests: | ||||||
|     def test_line(self):     |     def test_line(self):     | ||||||
|  |  | ||||||
|  | @ -118,7 +118,7 @@ class TestLogConsumer: | ||||||
| 
 | 
 | ||||||
|     def test_log_file(self): |     def test_log_file(self): | ||||||
|         customlog = tempdir.join('log.out') |         customlog = tempdir.join('log.out') | ||||||
|         py.log.setconsumer("default", open(str(customlog), 'w', buffering=1)) |         py.log.setconsumer("default", open(str(customlog), 'w', buffering=0)) | ||||||
|         py.log.Producer("default")("hello world #1")  |         py.log.Producer("default")("hello world #1")  | ||||||
|         assert customlog.readlines() == ['[default] hello world #1\n'] |         assert customlog.readlines() == ['[default] hello world #1\n'] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -368,14 +368,19 @@ def test_homedir(): | ||||||
|     homedir = py.path.local._gethomedir() |     homedir = py.path.local._gethomedir() | ||||||
|     assert homedir.check(dir=1) |     assert homedir.check(dir=1) | ||||||
| 
 | 
 | ||||||
|  | def test_samefile(tmpdir): | ||||||
|  |     assert tmpdir.samefile(tmpdir) | ||||||
|  |     p = tmpdir.ensure("hello") | ||||||
|  |     assert p.samefile(p)  | ||||||
|  | 
 | ||||||
| class TestWINLocalPath: | class TestWINLocalPath: | ||||||
|     pytestmark = py.test.mark.skipif("sys.platform != 'win32'") |     pytestmark = py.test.mark.skipif("sys.platform != 'win32'") | ||||||
| 
 | 
 | ||||||
|     def test_owner_group_not_implemented(self): |     def test_owner_group_not_implemented(self, path1): | ||||||
|         py.test.raises(NotImplementedError, "path1.stat().owner") |         py.test.raises(NotImplementedError, "path1.stat().owner") | ||||||
|         py.test.raises(NotImplementedError, "path1.stat().group") |         py.test.raises(NotImplementedError, "path1.stat().group") | ||||||
| 
 | 
 | ||||||
|     def test_chmod_simple_int(self): |     def test_chmod_simple_int(self, path1): | ||||||
|         py.builtin.print_("path1 is", path1) |         py.builtin.print_("path1 is", path1) | ||||||
|         mode = path1.stat().mode |         mode = path1.stat().mode | ||||||
|         # Ensure that we actually change the mode to something different. |         # Ensure that we actually change the mode to something different. | ||||||
|  | @ -388,18 +393,18 @@ class TestWINLocalPath: | ||||||
|             path1.chmod(mode) |             path1.chmod(mode) | ||||||
|             assert path1.stat().mode == mode |             assert path1.stat().mode == mode | ||||||
| 
 | 
 | ||||||
|     def test_path_comparison_lowercase_mixed(self): |     def test_path_comparison_lowercase_mixed(self, path1): | ||||||
|         t1 = path1.join("a_path") |         t1 = path1.join("a_path") | ||||||
|         t2 = path1.join("A_path") |         t2 = path1.join("A_path") | ||||||
|         assert t1 == t1 |         assert t1 == t1 | ||||||
|         assert t1 == t2 |         assert t1 == t2 | ||||||
|          |          | ||||||
|     def test_relto_with_mixed_case(self): |     def test_relto_with_mixed_case(self, path1): | ||||||
|         t1 = path1.join("a_path", "fiLe") |         t1 = path1.join("a_path", "fiLe") | ||||||
|         t2 = path1.join("A_path") |         t2 = path1.join("A_path") | ||||||
|         assert t1.relto(t2) == "fiLe" |         assert t1.relto(t2) == "fiLe" | ||||||
| 
 | 
 | ||||||
|     def test_allow_unix_style_paths(self): |     def test_allow_unix_style_paths(self, path1): | ||||||
|         t1 = path1.join('a_path') |         t1 = path1.join('a_path') | ||||||
|         assert t1 == str(path1) + '\\a_path' |         assert t1 == str(path1) + '\\a_path' | ||||||
|         t1 = path1.join('a_path/') |         t1 = path1.join('a_path/') | ||||||
|  | @ -407,7 +412,7 @@ class TestWINLocalPath: | ||||||
|         t1 = path1.join('dir/a_path') |         t1 = path1.join('dir/a_path') | ||||||
|         assert t1 == str(path1) + '\\dir\\a_path' |         assert t1 == str(path1) + '\\dir\\a_path' | ||||||
| 
 | 
 | ||||||
|     def test_sysfind_in_currentdir(self): |     def test_sysfind_in_currentdir(self, path1): | ||||||
|         cmd = py.path.local.sysfind('cmd') |         cmd = py.path.local.sysfind('cmd') | ||||||
|         root = cmd.new(dirname='', basename='') # c:\ in most installations |         root = cmd.new(dirname='', basename='') # c:\ in most installations | ||||||
|         old = root.chdir() |         old = root.chdir() | ||||||
|  | @ -420,11 +425,6 @@ class TestWINLocalPath: | ||||||
| class TestPOSIXLocalPath: | class TestPOSIXLocalPath: | ||||||
|     pytestmark = py.test.mark.skipif("sys.platform == 'win32'") |     pytestmark = py.test.mark.skipif("sys.platform == 'win32'") | ||||||
| 
 | 
 | ||||||
|     def test_samefile(self, tmpdir): |  | ||||||
|         assert tmpdir.samefile(tmpdir) |  | ||||||
|         p = tmpdir.ensure("hello") |  | ||||||
|         assert p.samefile(p)  |  | ||||||
| 
 |  | ||||||
|     def test_hardlink(self, tmpdir): |     def test_hardlink(self, tmpdir): | ||||||
|         linkpath = tmpdir.join('test') |         linkpath = tmpdir.join('test') | ||||||
|         filepath = tmpdir.join('file') |         filepath = tmpdir.join('file') | ||||||
|  |  | ||||||
|  | @ -8,7 +8,8 @@ def checksubpackage(name): | ||||||
|         keys = dir(obj) |         keys = dir(obj) | ||||||
|         assert len(keys) > 0 |         assert len(keys) > 0 | ||||||
|         print (obj.__map__) |         print (obj.__map__) | ||||||
|         assert getattr(obj, '__map__')  == {} |         for name in obj.__map__: | ||||||
|  |             assert hasattr(obj, name), (obj, name) | ||||||
| 
 | 
 | ||||||
| def test_dir(): | def test_dir(): | ||||||
|     for name in dir(py): |     for name in dir(py): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue