@@ -1982,3 +1982,44 @@ def test_conditional_computed_value(tmp_path_factory: pytest.TempPathFactory) ->
19821982 assert answers ["first" ] is True
19831983 assert answers ["second" ] is True
19841984 assert (dst / "log.txt" ).read_text () == "True True"
1985+
1986+
1987+ def test_disable_secret_validator_on_replay (
1988+ tmp_path_factory : pytest .TempPathFactory ,
1989+ ) -> None :
1990+ src , dst = map (tmp_path_factory .mktemp , ("src" , "dst" ))
1991+
1992+ build_file_tree (
1993+ {
1994+ src / "copier.yml" : (
1995+ """\
1996+ token:
1997+ type: str
1998+ secret: true
1999+ default: ""
2000+ validator: "{% if token == '' %}Must not be empty{% endif %}"
2001+ """
2002+ ),
2003+ src / "{{ _copier_conf.answers_file }}.jinja" : (
2004+ "{{ _copier_answers|to_nice_yaml }}"
2005+ ),
2006+ src / ".gitignore" : ".env" ,
2007+ src / ".env.jinja" : "TOKEN={{ token }}" ,
2008+ }
2009+ )
2010+ with local .cwd (src ):
2011+ git_init ("v1" )
2012+ git ("tag" , "v1" )
2013+
2014+ run_copy (str (src ), dst , data = {"token" : "$3cr3t" })
2015+ answers = load_answersfile_data (dst )
2016+ assert answers == {"_src_path" : str (src ), "_commit" : "v1" }
2017+ assert (dst / ".env" ).read_text () == "TOKEN=$3cr3t"
2018+
2019+ with local .cwd (dst ):
2020+ git_init ("v1" )
2021+
2022+ run_update (dst , data = {"token" : "$up3r-$3cr3t" }, overwrite = True )
2023+ answers = load_answersfile_data (dst )
2024+ assert answers == {"_src_path" : str (src ), "_commit" : "v1" }
2025+ assert (dst / ".env" ).read_text () == "TOKEN=$up3r-$3cr3t"
0 commit comments