def test_valid(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" self.test_tender["items"][0]["additionalClassifications"] = [ self.valid_gmdn ] tender = Tender(self.test_tender) tender.validate()
def test_validate_tender_minimalstep(self): self.test_tender["minimalStep"]["amount"] = 35 tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() self.assertEqual( e.exception.messages, { 'minimalStep': [ 'minimalstep must be between 0.5% and 3% of value (with 2 digits precision).' ] })
def test_with_invalid_cpv(self): self.test_tender["items"][0]["additionalClassifications"].append( self.valid_ua_road) tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0] self.assertIn( "Item shouldn't have additionalClassification with scheme UA-ROAD for cpv not starts with", error_message)
def test_invalid_description(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" self.test_tender["items"][0]["additionalClassifications"] = [{ "scheme": "GMDN", "id": "10024", "description": "Адаптометр invalid" }] tender = Tender(self.test_tender) tender.validate() # description isn't validated
def test_with_invalid_cpv(self): self.test_tender["items"][0]["additionalClassifications"] = [ self.valid_gmdn ] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.message["items"][0][ "additionalClassifications"][0] self.assertIn( u"Item shouldn't have additionalClassification with scheme GMDN for cpv not starts with", error_message)
def test_more_than_one_gmdn(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" self.test_tender["items"][0]["additionalClassifications"] = [ self.valid_gmdn, self.valid_gmdn ] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0] self.assertIn( "Item shouldn't have more than 1 additionalClassification", error_message)
def test_more_than_one_ua_road(self): self.test_tender["items"][0]["classification"]["id"] = "71322200-3" self.test_tender["items"][0]["additionalClassifications"] = [ self.valid_ua_road, self.valid_ua_road ] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.message["items"][0][ "additionalClassifications"][0] self.assertIn( "Item shouldn't have more than 1 additionalClassification", error_message)
def test_required_id_description(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" self.test_tender["items"][0]["additionalClassifications"] = [{ "scheme": "GMDN" }] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_messages = e.exception.messages["items"][0][ "additionalClassifications"][0] self.assertEqual( error_messages, { "id": ["This field is required."], "description": ["This field is required."] })
def test_invalid_id(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" self.test_tender["items"][0]["additionalClassifications"] = [{ "scheme": "GMDN", "id": "some invalid id", "description": "Адаптометр" }] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0]["id"][0] self.assertEqual(error_message, "GMDN id not found in standards")
def test_invalid_description(self): self.test_tender["items"][0]["classification"]["id"] = "71322200-3" self.test_tender["items"][0]["additionalClassifications"].append({ "scheme": "UA-ROAD", "id": "М-06", "description": "Some invalid description" }) tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0]["description"][0] self.assertEqual("UA-ROAD description invalid", error_message)
def test_invalid_id(self): self.test_tender["items"][0]["classification"]["id"] = "71322200-3" self.test_tender["items"][0]["additionalClassifications"].append({ "scheme": "UA-ROAD", "id": "some invalid id", "description": "Київ - Чоп (на м. Будапешт через мм. Львів, Мукачево і Ужгород)", }) tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0]["id"][0] self.assertEqual(error_message, "UA-ROAD id not found in standards")
def test_gmdn_with_inn_atc(self): self.test_tender["items"][0]["classification"]["id"] = "33928000-1" for scheme in ["INN", "ATC"]: self.test_tender["items"][0]["additionalClassifications"] = [ self.valid_gmdn, { "scheme": scheme, "id": "id", "description": "description" }, ] tender = Tender(self.test_tender) with self.assertRaises(ModelValidationError) as e: tender.validate() error_message = e.exception.messages["items"][0][ "additionalClassifications"][0] self.assertIn( "Item shouldn't have additionalClassifications with both schemes INN/ATC and GMDN", error_message)
def test_not_validate_minimalstep_for_tender_with_lots(self): self.test_tender["minimalStep"]["amount"] = 35 self.test_tender["lots"] = self.test_lots tender = Tender(self.test_tender) tender.validate()
def test_not_validate_tender_minimalstep_before_feature_start_date(self): self.test_tender["minimalStep"]["amount"] = 35 tender = Tender(self.test_tender) tender.validate()
def test_valid(self): self.test_tender["items"][0]["classification"]["id"] = "71322200-3" self.test_tender["items"][0]["additionalClassifications"].append( self.valid_ua_road) tender = Tender(self.test_tender) tender.validate()