Skip to content

Commit

Permalink
DataManager: fix bug where default type was not changed for all arrays
Browse files Browse the repository at this point in the history
  • Loading branch information
bkpoon committed Feb 25, 2025
1 parent 3f040da commit ac092c9
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 1 deletion.
2 changes: 1 addition & 1 deletion iotbx/data_manager/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def update_all_defaults(self, data_type):
array_type = [checked_type]
self.set_default_miller_array_type(array_type)
for filename in self.get_miller_array_names():
for label in self.get_miller_array_labels(filename):
for label in self.get_miller_array_all_labels(filename):
self.set_miller_array_type(filename, label, array_type)

def get_fmodel_params(self):
Expand Down
40 changes: 40 additions & 0 deletions iotbx/regression/tst_cli_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,45 @@ def run(self):
except Sorry as s:
assert 'duplicate user_selected_labels' in str(s)

# -----------------------------------------------------------------------------
def test_update_all_defaults():

data_dir = os.path.dirname(os.path.abspath(__file__))
model_1yjp = os.path.join(data_dir, 'data', '1yjp.pdb')
data_mtz = os.path.join(data_dir, 'data', 'phaser_1.mtz')

class testProgram(ProgramTemplate):

datatypes = ['model', 'miller_array', 'phil']

def validate(self):
pass

def run(self):
pass

def get_results(self):
return self.data_manager

dm = run_program(
program_class=testProgram,
args=['--quiet', '--overwrite', model_1yjp, data_mtz]
)
dm.update_all_defaults('neutron')
assert 'neutron' in dm.get_model_type(model_1yjp)
assert 'x_ray' not in dm.get_model_type(model_1yjp)

# check that all default types are updated even with label selection
dm = run_program(
program_class=testProgram,
args=['--quiet', '--overwrite', model_1yjp, data_mtz,
'user_selected=FWT,PHIFWT']
)
dm.update_all_defaults('electron')
for label in dm.get_miller_array_all_labels(data_mtz):
assert 'electron' in dm.get_miller_array_type(data_mtz, label)
assert 'x_ray' not in dm.get_miller_array_type(data_mtz, label)

# -----------------------------------------------------------------------------
def test_json():
class testProgram(ProgramTemplate):
Expand Down Expand Up @@ -634,6 +673,7 @@ def get_results(self):
test_label_parsing()
test_model_type_parsing()
test_user_selected_labels()
test_update_all_defaults()
test_json()
test_diff_params()
test_check_current_dir()
Expand Down

0 comments on commit ac092c9

Please sign in to comment.