def test_error_if_space_group_not_given(self, mocker): dict_with_space_group_missing = CALCITE_CIF.copy() dict_with_space_group_missing.pop("symmetry_space_group_name_H-M") mocker.patch("diffraction.crystal.DirectLattice") with pytest.raises(ValueError) as exception_info: Crystal.from_dict(dict_with_space_group_missing) assert str(exception_info.value) == ("Parameter: 'space_group' " "missing from input dictionary")
def test_lattice_parameters_and_space_group_are_assigned(self, mocker): mock_lattice = mocker.Mock(spec=DirectLattice) mocker.patch("diffraction.crystal.DirectLattice.from_dict", return_value=mock_lattice) c = Crystal.from_dict(CALCITE_DATA) assert c.space_group == CALCITE_DATA["space_group"] assert c.lattice == mock_lattice
def test_loading_atomic_sites_from_dict(self, mocker): mocker.patch("diffraction.crystal.DirectLattice.from_dict") calcite_data_with_sites = CALCITE_DATA.copy() calcite_data_with_sites["sites"] = CALCITE_ATOMIC_SITES c = Crystal.from_dict(calcite_data_with_sites) expected_sites = {name: Site(ion, position) for name, (ion, position) in CALCITE_ATOMIC_SITES.items()} assert c.sites == expected_sites