45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
| import py
 | |
| from py.__.apigen.linker import Linker, getrelfspath, relpath
 | |
| 
 | |
| class TestLinker(object):
 | |
|     def test_get_target(self):
 | |
|         linker = Linker()
 | |
|         lazyhref = linker.get_lazyhref('py.path.local')
 | |
|         linker.set_link('py.path.local', 'py/path/local.html')
 | |
|         relpath = linker.get_target('py.path.local')
 | |
|         assert relpath == 'py/path/local.html'
 | |
|    
 | |
|     def test_target_relative(self):
 | |
|         linker = Linker()
 | |
|         lazyhref = linker.get_lazyhref('py.path.local')
 | |
|         linker.set_link('py.path.local', 'py/path/local.html')
 | |
|         relpath = linker.call_withbase('py/index.html', 
 | |
|                     linker.get_target, 'py.path.local')
 | |
|         assert relpath == 'path/local.html'
 | |
| 
 | |
| 
 | |
|         
 | |
| testspec = [
 | |
|     'a    a/b   a/b', 
 | |
|     '/a   /a/b  a/b', 
 | |
|     'a    b     b',
 | |
|     '/a   /b    b',
 | |
|     'a/b  c/d   ../c/d', 
 | |
|     '/a/b  /c/d   ../c/d', 
 | |
|     'a/b  a     ../a', 
 | |
|     '/a/b /a   ../a', 
 | |
| ]     
 | |
| 
 | |
| def gen_check(frompath, topath, expected):
 | |
|     result = relpath(frompath, topath)
 | |
|     print "linking", frompath, "to", topath
 | |
|     assert result == expected
 | |
| 
 | |
| def test_gen_check():
 | |
|     for line in testspec:
 | |
|         frompath, topath, expected = line.split()
 | |
|         yield gen_check, frompath, topath, expected
 | |
| 
 | |
| def test_check_incompatible():
 | |
|     py.test.raises(ValueError, "relpath('/a', 'b')")
 |