Skip to content

Commit

Permalink
default tests should work now
Browse files Browse the repository at this point in the history
  • Loading branch information
louisponet committed May 24, 2018
1 parent e0a917f commit ecc4f38
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 8 deletions.
8 changes: 6 additions & 2 deletions src/DFControl.jl
Original file line number Diff line number Diff line change
Expand Up @@ -97,12 +97,16 @@ module DFControl
export setdefault_server
export configure_defaultpseudos
export removedefault_pseudodir
export default_pseudo
export removedefault_pseudos
export setdefault_jobheader
export @add_default
export load_defaults
export setdefault_input
export removedefault_input
export getdefault_pseudo
export getdefault_server
export getdefault_jobheader
export getdefault_pseudodir
export getdefault_pseudodirs

if Pkg.installed("Atom") != nothing
include("display/printing_juno.jl")
Expand Down
37 changes: 33 additions & 4 deletions src/defaults.jl
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,37 @@ function removedefault_pseudodir(pseudo_symbol::Symbol)
rm_expr_lhs(default_file, :default_pseudo_dirs)
default_pseudo_dirs = nothing
end
removedefault_pseudos(pseudo_symbol)
else
load_defaults(default_file)
end
end

"""
removedefault_pseudos(pseudo_symbol::Symbol)
Removes all pseudo entries with flag `pseudo_symbol` from the `default_pseudos`.
"""
function removedefault_pseudos(pseudo_symbol::Symbol)
found = false
if isdefined(:default_pseudos)
for (at, pseudos) in DFControl.default_pseudos
if haskey(pseudos, pseudo_symbol)
pop!(pseudos, pseudo_symbol)
rm_expr_lhs(default_file, :(default_pseudos[$(QuoteNode(at))][$(QuoteNode(pseudo_symbol))]))
found = true
end
end
if isempty(DFControl.default_pseudos)
rm_expr_lhs(default_file, :default_pseudos)
default_pseudos = nothing
end
end
if found
removedefault_pseudodir(pseudo_symbol)
else
load_defaults(default_file)
end
load_defaults(default_file)
end

"""
Expand Down Expand Up @@ -126,7 +155,7 @@ end
Reads the specified `default_pseudo_dirs` on the `default_server` and sets up the `default_pseudos` variable, and also adds all the entries to the `user_defaults.jl` file.
"""
function configure_defaultpseudos(server = getdefault_server(), pseudo_dirs=getdefault_pseudodirs())
function configure_defaultpseudos(;server = getdefault_server(), pseudo_dirs=getdefault_pseudodirs())
if server == ""
error("Either supply a valid server string or setup a default server through 'setdefault_server!()'.")
end
Expand All @@ -138,7 +167,7 @@ function configure_defaultpseudos(server = getdefault_server(), pseudo_dirs=getd
outputs = Dict{Symbol, String}()
for (name, directory) in pseudo_dirs
outputs[name] = server == "localhost" ? readstring(`ls $directory`) : readstring(`ssh -t $server ls $directory`)
end
end

if !isdefined(:default_pseudos)
expr2file(default_file, :(default_pseudos = Dict{Symbol, Dict{Symbol, Vector{String}}}()))
Expand Down Expand Up @@ -185,7 +214,7 @@ function getdefault_pseudo(atom::Symbol, pseudo_setname=:default; pseudo_specifi
else
pp_atom = atom
end
if isdefined(:default_pseudos)
if isdefined(:default_pseudos) && haskey(DFControl.default_pseudos[pp_atom], pseudo_setname)
if pseudo_specifier != ""
return getfirst(x -> contains(x, pseudo_specifier), default_pseudos[pp_atom][pseudo_setname])
else
Expand Down
2 changes: 2 additions & 0 deletions src/qe/fileio.jl
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,8 @@ function write_structure(f, input::DFInput{QE}, structure)
atom_lines = String[]
for at in unique_at
push!(pseudo_lines, "$(id(at)) $(element(at).atomic_weight) $(pseudo(at))\n")
end
for at in structure.atoms
pos = position(at)
push!(atom_lines, "$(id(at)) $(pos[1]) $(pos[2]) $(pos[3])\n")
end
Expand Down
12 changes: 11 additions & 1 deletion test/defaults_test.jl
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@

using DFControl


prevdefault = getdefault_server()
setdefault_server("localhost")
setdefault_pseudodir(:test, joinpath(Pkg.dir("DFControl"), "test/testassets/pseudos"))
configure_defaultpseudos()
configure_defaultpseudos(pseudo_dirs=Dict(:test => getdefault_pseudodirs()[:test]))



@add_default testdefaultstring = "test"

@test testdefaultstring == "test"
@test DFControl.getdefault_pseudo(:Si, :test) == "Si.UPF"
@test DFControl.getdefault_server() == "localhost"

DFControl.removedefault_pseudos(:test)

@test DFControl.getdefault_pseudo(:Si, :test) == nothing

DFControl.rm_expr_lhs(DFControl.default_file, :(testdefaultstring))
setdefault_server(prevdefault)
1 change: 0 additions & 1 deletion test/job_control_tests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ setflow!(df_job, "pw2wan" => true)
@test df_job.calculations[end-1].run

print_info(df_job)
print_flags(df_job)
@test inputs(df_job,["nscf"]) == inputs(df_job,"nscf")


Expand Down

0 comments on commit ecc4f38

Please sign in to comment.