def test_GIVEN_invalid_stl_file_WHEN_validating_geometry_THEN_validity_signal_is_emitted_with_false(): validator = GeometryFileValidator(GEOMETRY_FILE_TYPES) validator.is_valid = Mock() # File with missing endloop statement invalid_stl_file = ( "solid dart\n" "facet normal 0.00000E+000 0.00000E+000 -1.00000E+000\n" "outer loop\n" "vertex 3.10000E+001 4.15500E+001 1.00000E+000\n" "vertex 3.10000E+001 1.00000E+001 1.00000E+000\n" "vertex 1.00000E+000 2.50000E-001 1.00000E+000\n" "endloop\n" "endfacet\n" "facet normal 0.00000E+000 0.00000E+000 -1.00000E+000\n" "outer loop\n" "vertex 3.10000E+001 4.15500E+001 1.00000E+000\n" "vertex 6.10000E+001 2.50000E-001 1.00000E+000\n" "vertex 3.10000E+001 1.00000E+001 1.00000E+000\n" "endloop\n" "endfacet\n" "facet normal 8.09000E-001 5.87800E-001 0.00000E+000\n" "outer loop\n" "vertex 3.10000E+001 4.15500E+001 1.00000E+000\n" "vertex 6.10000E+001 2.50000E-001 6.00000E+000\n" "vertex 6.10000E+001 2.50000E-001 1.00000E+000\n" "endfacet\n" "endsolid dart\n" ) validator.open_file = Mock(return_value=StringIO("".join(invalid_stl_file))) validator.is_file = Mock(return_value=True) assert validator.validate("test.stl", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_invalid_off_WHEN_validating_geometry_THEN_validity_signal_is_emitted_with_false(): validator = GeometryFileValidator(GEOMETRY_FILE_TYPES) validator.is_valid = Mock() # File missing a point invalid_off_file = ( "OFF\n" "# cube.off\n" "# A cube\n" "8 6 0\n" "-0.500000 -0.500000 0.500000\n" "0.500000 -0.500000 0.500000\n" "-0.500000 0.500000 0.500000\n" "0.500000 0.500000 0.500000\n" "-0.500000 0.500000 -0.500000\n" "0.500000 0.500000 -0.500000\n" "-0.500000 -0.500000 -0.500000\n" "4 0 1 3 2\n" "4 2 3 5 4\n" "4 4 5 7 6\n" "4 6 7 1 0\n" "4 1 7 5 3\n" "4 6 0 2 4\n" ) validator.open_file = Mock(return_value=StringIO("".join(invalid_off_file))) validator.is_file = Mock(return_value=True) assert validator.validate("test.off", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_file_not_ending_with_correct_suffix_WHEN_validating_geometry_file_THEN_emits_signal_with_false(): file_types = {"OFF files": ["off", ["OFF"]]} validator = GeometryFileValidator(file_types) validator.is_valid = Mock() validator.is_file = lambda x: True assert validator.validate("something.json", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_invalid_file_WHEN_validating_geometry_file_THEN_returns_intermediate_and_emits_signal_with_false(): validator = GeometryFileValidator([]) validator.is_valid = Mock() validator.is_file = lambda x: False assert validator.validate("", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_blank_OFF_file_WHEN_validating_geometry_THEN_validity_signal_is_emitted_with_false(): validator = GeometryFileValidator(GEOMETRY_FILE_TYPES) validator.is_valid = Mock() blank_off_file = "" validator.open_file = Mock(return_value=StringIO("".join(blank_off_file))) validator.is_file = Mock(return_value=True) assert validator.validate("test.off", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)