def test_error_if_required_field_is_missing(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1i-i'] validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ3-1i-i': 'answer_required'})
def test_error_if_required_text_field_is_empty(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ1-2b'] = "" validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-2b': 'answer_required'})
def test_error_if_required_text_field_is_empty(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ1-2b'] = "" validator = G7Validator(content, submission) assert validator.errors() == {'SQ1-2b': 'answer_required'}
def test_no_error_if_optional_field_is_missing(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1p-i'] validator = G7Validator(content, submission) assert validator.errors() == {}
def test_no_error_if_optional_field_is_missing(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1p-i'] validator = G7Validator(content, submission) assert_equal(validator.errors(), {})
def test_error_if_required_field_is_missing(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1i-i'] validator = G7Validator(content, submission) assert validator.errors() == {'SQ3-1i-i': 'answer_required'}
def test_fields_only_relevant_to_non_uk(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ5-2a'] = False del submission['SQ1-1i-i'] validator = G7Validator(content, submission) assert validator.errors() == {'SQ1-1i-i': 'answer_required'}
def test_fields_only_relevant_to_non_uk(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ5-2a'] = False del submission['SQ1-1i-i'] validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-1i-i': 'answer_required'})
def test_no_error_if_no_tax_issues_and_no_details(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ4-1a'] = False submission['SQ4-1b'] = False del submission['SQ4-1c'] validator = G7Validator(content, submission) assert validator.errors() == {}
def test_no_error_if_no_tax_issues_and_no_details(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ4-1a'] = False submission['SQ4-1b'] = False del submission['SQ4-1c'] validator = G7Validator(content, submission) assert_equal(validator.errors(), {})
def test_trade_registers_details_error_depends_on_trade_registers(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1i-ii'] submission['SQ1-1i-i'] = False validator = G7Validator(content, submission) assert validator.errors() == {} submission['SQ1-1i-i'] = True validator = G7Validator(content, submission) assert validator.errors() == {'SQ1-1i-ii': 'answer_required'}
def test_trade_registers_details_error_depends_on_trade_registers(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1i-ii'] submission['SQ1-1i-i'] = False validator = G7Validator(content, submission) assert_equal(validator.errors(), {}) submission['SQ1-1i-i'] = True validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-1i-ii': 'answer_required'})
def test_invalid_email_addresses_cause_errors(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ1-1o'] = '@invalid.com' submission['SQ1-2b'] = 'some.user.missed.their.at.com' validator = G7Validator(content, submission) assert validator.errors() == { 'SQ1-1o': 'invalid_format', 'SQ1-2b': 'invalid_format', }
def test_invalid_email_addresses_cause_errors(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() submission['SQ1-1o'] = '@invalid.com' submission['SQ1-2b'] = 'some.user.missed.their.at.com' validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-1o': 'invalid_format', 'SQ1-2b': 'invalid_format'} )
def test_licenced_details_error_depends_on_licenced(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1j-ii'] del submission['SQ1-1j-i'] validator = G7Validator(content, submission) assert validator.errors() == {} submission['SQ1-1j-i'] = ["licensed"] validator = G7Validator(content, submission) assert validator.errors() == {'SQ1-1j-ii': 'answer_required'}
def test_licenced_details_error_depends_on_licenced(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1j-ii'] del submission['SQ1-1j-i'] validator = G7Validator(content, submission) assert_equal(validator.errors(), {}) submission['SQ1-1j-i'] = ["licensed"] validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-1j-ii': 'answer_required'})
def test_trading_status_details_error_depends_on_trading_status(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1cii'] validator = G7Validator(content, submission) submission['SQ1-1ci'] = "something" validator = G7Validator(content, submission) assert validator.errors() == {} submission['SQ1-1ci'] = "other (please specify)" validator = G7Validator(content, submission) assert validator.errors() == {'SQ1-1cii': 'answer_required'}
def test_trading_status_details_error_depends_on_trading_status(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ1-1cii'] validator = G7Validator(content, submission) submission['SQ1-1ci'] = "something" validator = G7Validator(content, submission) assert_equal(validator.errors(), {}) submission['SQ1-1ci'] = "other (please specify)" validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ1-1cii': 'answer_required'})
def test_mitigation_factors_not_required(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1k'] dependent_fields = [ 'SQ2-2a', 'SQ3-1a', 'SQ3-1b', 'SQ3-1c', 'SQ3-1d', 'SQ3-1e', 'SQ3-1f', 'SQ3-1g', 'SQ3-1h-i', 'SQ3-1h-ii', 'SQ3-1i-i', 'SQ3-1i-ii', 'SQ3-1j' ] for field in dependent_fields: submission[field] = False validator = G7Validator(content, submission) assert validator.errors() == {}
def test_mitigation_factors_not_required(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1k'] dependent_fields = [ 'SQ2-2a', 'SQ3-1a', 'SQ3-1b', 'SQ3-1c', 'SQ3-1d', 'SQ3-1e', 'SQ3-1f', 'SQ3-1g', 'SQ3-1h-i', 'SQ3-1h-ii', 'SQ3-1i-i', 'SQ3-1i-ii', 'SQ3-1j' ] for field in dependent_fields: submission[field] = False validator = G7Validator(content, submission) assert_equal(validator.errors(), {})
def test_error_if_tax_issues_and_no_details(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ4-1c'] submission['SQ4-1a'] = True submission['SQ4-1b'] = False validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ4-1c': 'answer_required'}) submission['SQ4-1a'] = False submission['SQ4-1b'] = True validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ4-1c': 'answer_required'})
def test_error_if_mitigation_factors_not_provided_when_required(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1k'] dependent_fields = [ 'SQ2-2a', 'SQ3-1a' 'SQ3-1b', 'SQ3-1c', 'SQ3-1d', 'SQ3-1e', 'SQ3-1f', 'SQ3-1g', 'SQ3-1h-i', 'SQ3-1h-ii', 'SQ3-1i-i', 'SQ3-1i-ii', 'SQ3-1j' ] for field in dependent_fields: # Set all other fields to false to show that just this field causes the error for other in dependent_fields: submission[other] = False submission[field] = True validator = G7Validator(content, submission) assert_equal(validator.errors(), {'SQ3-1k': 'answer_required'})
def test_error_if_mitigation_factors_not_provided_when_required(): content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() del submission['SQ3-1k'] dependent_fields = [ 'SQ2-2a', 'SQ3-1a', 'SQ3-1b', 'SQ3-1c', 'SQ3-1d', 'SQ3-1e', 'SQ3-1f', 'SQ3-1g', 'SQ3-1h-i', 'SQ3-1h-ii', 'SQ3-1i-i', 'SQ3-1i-ii', 'SQ3-1j' ] for field in dependent_fields: # Set all other fields to false to show that just this field causes the error for other in dependent_fields: submission[other] = False submission[field] = True validator = G7Validator(content, submission) assert validator.errors() == {'SQ3-1k': 'answer_required'}
def test_character_limit_errors(): cases = [ ("SQ1-1a", 5000), ("SQ1-1cii", 5000), ("SQ1-1d-i", 5000), ("SQ1-1d-ii", 5000), ("SQ1-1i-ii", 5000), ("SQ3-1k", 5000), ] content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() for field, limit in cases: submission[field] = "a" * (limit + 1) validator = G7Validator(content, submission) assert validator.errors() == {field: 'under_character_limit'} submission[field] = "a" * limit validator = G7Validator(content, submission) assert validator.errors() == {}
def test_character_limit_errors(): cases = [ ("SQ1-1a", 5000), ("SQ1-1cii", 5000), ("SQ1-1d-i", 5000), ("SQ1-1d-ii", 5000), ("SQ1-1i-ii", 5000), ("SQ3-1k", 5000), ] content = content_loader.get_manifest('g-cloud-7', 'declaration') submission = FULL_G7_SUBMISSION.copy() for field, limit in cases: submission[field] = "a" * (limit + 1) validator = G7Validator(content, submission) assert_equal(validator.errors(), {field: 'under_character_limit'}) submission[field] = "a" * limit validator = G7Validator(content, submission) assert_equal(validator.errors(), {})