File tree Expand file tree Collapse file tree 2 files changed +14
-4
lines changed
Expand file tree Collapse file tree 2 files changed +14
-4
lines changed Original file line number Diff line number Diff line change 11import argparse
22import functools
33import os
4+ import pathlib
45import re
56import sys
67import textwrap
@@ -299,11 +300,15 @@ def _parse_value(v: Any) -> Any:
299300 if isinstance (v , str ) and v .startswith ("@" ):
300301 # If the user-provided value starts with @, we try to read the file
301302 # path provided after @ as the real value. Exit on any error.
303+ filepath = pathlib .Path (v [1 :]).expanduser ().resolve ()
302304 try :
303- with open (v [ 1 :] , encoding = "utf-8" ) as f :
305+ with open (filepath , encoding = "utf-8" ) as f :
304306 return f .read ()
305- except Exception as e :
306- sys .stderr .write (f"{ e } \n " )
307+ except UnicodeDecodeError :
308+ with open (filepath , "rb" ) as f :
309+ return f .read ()
310+ except (FileNotFoundError , PermissionError ) as exc :
311+ sys .stderr .write (f"{ exc } \n " )
307312 sys .exit (1 )
308313
309314 return v
Original file line number Diff line number Diff line change @@ -540,12 +540,15 @@ def test_update_application_settings(gitlab_cli):
540540 assert ret .success
541541
542542
543- def test_create_project_with_values_from_file (gitlab_cli , tmpdir ):
543+ def test_create_project_with_values_from_file (gitlab_cli , fixture_dir , tmpdir ):
544544 name = "gitlab-project-from-file"
545545 description = "Multiline\n \n Data\n "
546546 from_file = tmpdir .join (name )
547547 from_file .write (description )
548548 from_file_path = f"@{ str (from_file )} "
549+ avatar_file = fixture_dir / "avatar.png"
550+ assert avatar_file .exists ()
551+ avatar_file_path = f"@{ avatar_file } "
549552
550553 cmd = [
551554 "-v" ,
@@ -555,6 +558,8 @@ def test_create_project_with_values_from_file(gitlab_cli, tmpdir):
555558 name ,
556559 "--description" ,
557560 from_file_path ,
561+ "--avatar" ,
562+ avatar_file_path ,
558563 ]
559564 ret = gitlab_cli (cmd )
560565
You can’t perform that action at this time.
0 commit comments