11import random
22import string
3+ import sys
4+ from pathlib import Path
35
46import pytest
57import yaml
@@ -811,7 +813,7 @@ def get(req, resp):
811813 assert r .status_code == 200
812814
813815
814- def create_asset (static_dir , name = None , parent_dir = None ):
816+ def create_asset (static_dir : Path , name = None , parent_dir : str = None ) -> Path :
815817 if name is None :
816818 name = random .choices (string .ascii_letters , k = 6 ) # noqa: S311
817819 # :3
@@ -821,16 +823,20 @@ def create_asset(static_dir, name=None, parent_dir=None):
821823 if parent_dir is None :
822824 parent_dir = static_dir
823825 else :
824- parent_dir = static_dir .mkdir (parent_dir )
826+ parent_dir = static_dir / parent_dir
827+ parent_dir .mkdir ()
825828
826- asset = parent_dir . join ( name )
827- asset .write ("body { color: blue; }" )
828- return asset
829+ asset = parent_dir / name
830+ asset .write_text ("body { color: blue; }" , encoding = "utf-8 " )
831+ return Path ( asset )
829832
830833
831834@pytest .mark .parametrize ("static_route" , [None , "/static" , "/custom/static/route" ])
832- def test_staticfiles (tmpdir , static_route ):
833- static_dir = tmpdir .mkdir ("static" )
835+ def test_staticfiles (tmp_path , static_route ):
836+ if sys .platform == "win32" and static_route is None :
837+ raise pytest .skip ("Route 'None' currently does not work on Windows" )
838+ static_dir = tmp_path / "static"
839+ static_dir .mkdir ()
834840
835841 asset1 = create_asset (static_dir )
836842 parent_dir = "css"
@@ -842,10 +848,10 @@ def test_staticfiles(tmpdir, static_route):
842848 static_route = api .static_route
843849
844850 # ok
845- r = session .get (f"{ static_route } /{ asset1 .basename } " )
851+ r = session .get (f"{ static_route } /{ asset1 .name } " )
846852 assert r .status_code == api .status_codes .HTTP_200
847853
848- r = session .get (f"{ static_route } /{ parent_dir } /{ asset2 .basename } " )
854+ r = session .get (f"{ static_route } /{ parent_dir } /{ asset2 .name } " )
849855 assert r .status_code == api .status_codes .HTTP_200
850856
851857 # Asset not found
@@ -871,7 +877,7 @@ def test_staticfiles_none_dir(tmpdir):
871877 static_route = api .static_route
872878
873879 # ok
874- r = session .get (f"{ static_route } /{ asset .basename } " )
880+ r = session .get (f"{ static_route } /{ asset .name } " )
875881 assert r .status_code == api .status_codes .HTTP_404
876882
877883 # dir listing
0 commit comments