61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
import py
 | 
						|
 | 
						|
import pytest
 | 
						|
from _pytest import nodes
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize(
 | 
						|
    "baseid, nodeid, expected",
 | 
						|
    (
 | 
						|
        ("", "", True),
 | 
						|
        ("", "foo", True),
 | 
						|
        ("", "foo/bar", True),
 | 
						|
        ("", "foo/bar::TestBaz", True),
 | 
						|
        ("foo", "food", False),
 | 
						|
        ("foo/bar::TestBaz", "foo/bar", False),
 | 
						|
        ("foo/bar::TestBaz", "foo/bar::TestBop", False),
 | 
						|
        ("foo/bar", "foo/bar::TestBop", True),
 | 
						|
    ),
 | 
						|
)
 | 
						|
def test_ischildnode(baseid, nodeid, expected):
 | 
						|
    result = nodes.ischildnode(baseid, nodeid)
 | 
						|
    assert result is expected
 | 
						|
 | 
						|
 | 
						|
def test_node_from_parent_disallowed_arguments():
 | 
						|
    with pytest.raises(TypeError, match="session is"):
 | 
						|
        nodes.Node.from_parent(None, session=None)
 | 
						|
    with pytest.raises(TypeError, match="config is"):
 | 
						|
        nodes.Node.from_parent(None, config=None)
 | 
						|
 | 
						|
 | 
						|
def test_std_warn_not_pytestwarning(testdir):
 | 
						|
    items = testdir.getitems(
 | 
						|
        """
 | 
						|
        def test():
 | 
						|
            pass
 | 
						|
    """
 | 
						|
    )
 | 
						|
    with pytest.raises(ValueError, match=".*instance of PytestWarning.*"):
 | 
						|
        items[0].warn(UserWarning("some warning"))
 | 
						|
 | 
						|
 | 
						|
def test__check_initialpaths_for_relpath():
 | 
						|
    """Ensure that it handles dirs, and does not always use dirname."""
 | 
						|
    cwd = py.path.local()
 | 
						|
 | 
						|
    class FakeSession:
 | 
						|
        _initialpaths = [cwd]
 | 
						|
 | 
						|
    assert nodes._check_initialpaths_for_relpath(FakeSession, cwd) == ""
 | 
						|
 | 
						|
    sub = cwd.join("file")
 | 
						|
 | 
						|
    class FakeSession:
 | 
						|
        _initialpaths = [cwd]
 | 
						|
 | 
						|
    assert nodes._check_initialpaths_for_relpath(FakeSession, sub) == "file"
 | 
						|
 | 
						|
    outside = py.path.local("/outside")
 | 
						|
    assert nodes._check_initialpaths_for_relpath(FakeSession, outside) is None
 |