Commit cd53b8c4f696781564fbd9a548605e0ee034301a
Committed by
GitHub
Merge pull request #137 from ProzorroUKR/dev_prozorro
Dev prozorro
Showing
15 changed files
with
811 additions
and
3 deletions
... | ... | @@ -23,6 +23,8 @@ ${ERROR_MESSAGE}= Calling method 'get_tender' failed: ResourceGone: {"status": |
23 | 23 | ... api_host_url=${API_HOST_URL} |
24 | 24 | ... moz_integration=${${MOZ_INTEGRATION}} |
25 | 25 | ... vat_included=${${VAT_INCLUDED}} |
26 | + ... road_index=${${ROAD_INDEX}} | |
27 | + ... gmdn_index=${${GMDN_INDEX}} | |
26 | 28 | ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} |
27 | 29 | ${FUNDING_KIND}= Get Variable Value ${FUNDING_KIND} |
28 | 30 | Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} |
... | ... | @@ -46,6 +48,8 @@ ${ERROR_MESSAGE}= Calling method 'get_tender' failed: ResourceGone: {"status": |
46 | 48 | ... item_meat=${${ITEM_MEAT}} |
47 | 49 | ... api_host_url=${API_HOST_URL} |
48 | 50 | ... moz_integration=${${MOZ_INTEGRATION}} |
51 | + ... road_index=${${ROAD_INDEX}} | |
52 | + ... gmdn_index=${${GMDN_INDEX}} | |
49 | 53 | ${submissionMethodDetails}= Get Variable Value ${submissionMethodDetails} |
50 | 54 | ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} |
51 | 55 | ${first_stage}= Run As ${provider2} Пошук тендера по ідентифікатору ${TENDER['TENDER_UAID']} |
... | ... | @@ -72,6 +76,8 @@ ${ERROR_MESSAGE}= Calling method 'get_tender' failed: ResourceGone: {"status": |
72 | 76 | ... item_meat=${${ITEM_MEAT}} |
73 | 77 | ... api_host_url=${API_HOST_URL} |
74 | 78 | ... moz_integration=${${MOZ_INTEGRATION}} |
79 | + ... road_index=${${ROAD_INDEX}} | |
80 | + ... gmdn_index=${${GMDN_INDEX}} | |
75 | 81 | ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} |
76 | 82 | ${FUNDING_KIND}= Get Variable Value ${FUNDING_KIND} |
77 | 83 | Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} |
... | ... | @@ -85,6 +91,66 @@ ${ERROR_MESSAGE}= Calling method 'get_tender' failed: ResourceGone: {"status": |
85 | 91 | Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} |
86 | 92 | |
87 | 93 | |
94 | +Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг | |
95 | + [Arguments] ${data_version} | |
96 | + ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | |
97 | + ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | |
98 | + ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} | |
99 | + ${tender_parameters}= Create Dictionary | |
100 | + ... mode=${MODE} | |
101 | + ... number_of_items=${NUMBER_OF_ITEMS} | |
102 | + ... number_of_lots=${NUMBER_OF_LOTS} | |
103 | + ... number_of_milestones=${NUMBER_OF_MILESTONES} | |
104 | + ... tender_meat=${${TENDER_MEAT}} | |
105 | + ... lot_meat=${${LOT_MEAT}} | |
106 | + ... item_meat=${${ITEM_MEAT}} | |
107 | + ... api_host_url=${API_HOST_URL} | |
108 | + ... moz_integration=${${MOZ_INTEGRATION}} | |
109 | + ... road_index=${${ROAD_INDEX}} | |
110 | + ... gmdn_index=${${GMDN_INDEX}} | |
111 | + ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} | |
112 | + ${FUNDING_KIND}= Get Variable Value ${FUNDING_KIND} | |
113 | + Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} | |
114 | + Run keyword if '${FUNDING_KIND}' != '${None}' Set to dictionary ${tender_parameters} fundingKind=${FUNDING_KIND} | |
115 | + ${tender_data}= Підготувати дані для створення тендера ${tender_parameters} | |
116 | + ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | |
117 | + ${adapted_data_cost}= edit_tender_data_for_cost ${adapted_data} ${MODE} ${data_version} | |
118 | + Log ${adapted_data_cost} | |
119 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_cost} | |
120 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_cost} | |
121 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | |
122 | + | |
123 | + | |
124 | +Можливість оголосити тендер з використанням валідації класифікатор медичних виробів | |
125 | + [Arguments] ${data_version} | |
126 | + ${NUMBER_OF_LOTS}= Convert To Integer ${NUMBER_OF_LOTS} | |
127 | + ${NUMBER_OF_ITEMS}= Convert To Integer ${NUMBER_OF_ITEMS} | |
128 | + ${NUMBER_OF_MILESTONES}= Convert To Integer ${NUMBER_OF_MILESTONES} | |
129 | + ${tender_parameters}= Create Dictionary | |
130 | + ... mode=${MODE} | |
131 | + ... number_of_items=${NUMBER_OF_ITEMS} | |
132 | + ... number_of_lots=${NUMBER_OF_LOTS} | |
133 | + ... number_of_milestones=${NUMBER_OF_MILESTONES} | |
134 | + ... tender_meat=${${TENDER_MEAT}} | |
135 | + ... lot_meat=${${LOT_MEAT}} | |
136 | + ... item_meat=${${ITEM_MEAT}} | |
137 | + ... api_host_url=${API_HOST_URL} | |
138 | + ... moz_integration=${${MOZ_INTEGRATION}} | |
139 | + ... road_index=${${ROAD_INDEX}} | |
140 | + ... gmdn_index=${${GMDN_INDEX}} | |
141 | + ${DIALOGUE_TYPE}= Get Variable Value ${DIALOGUE_TYPE} | |
142 | + ${FUNDING_KIND}= Get Variable Value ${FUNDING_KIND} | |
143 | + Run keyword if '${DIALOGUE_TYPE}' != '${None}' Set to dictionary ${tender_parameters} dialogue_type=${DIALOGUE_TYPE} | |
144 | + Run keyword if '${FUNDING_KIND}' != '${None}' Set to dictionary ${tender_parameters} fundingKind=${FUNDING_KIND} | |
145 | + ${tender_data}= Підготувати дані для створення тендера ${tender_parameters} | |
146 | + ${adapted_data}= Адаптувати дані для оголошення тендера ${tender_data} | |
147 | + ${adapted_data_gmdn}= edit_tender_data_for_gmdn ${adapted_data} ${MODE} ${data_version} | |
148 | + Log ${adapted_data_gmdn} | |
149 | + ${TENDER_UAID}= Run As ${tender_owner} Створити тендер ${adapted_data_gmdn} | |
150 | + Set To Dictionary ${USERS.users['${tender_owner}']} initial_data=${adapted_data_gmdn} | |
151 | + Set To Dictionary ${TENDER} TENDER_UAID=${TENDER_UAID} | |
152 | + | |
153 | + | |
88 | 154 | Можливість створити об'єкт моніторингу |
89 | 155 | ${period_intervals}= compute_intrs ${BROKERS} ${used_brokers} |
90 | 156 | ${accelerator}= Get Variable Value ${accelerator} | ... | ... |
... | ... | @@ -217,6 +217,10 @@ def test_tender_data(params, |
217 | 217 | data.update(period_dict) |
218 | 218 | if params.get('moz_integration'): |
219 | 219 | cpv_group = 336 |
220 | + elif params.get('road_index'): | |
221 | + cpv_group = 'road' | |
222 | + elif params.get('gmdn_index'): | |
223 | + cpv_group = 'gmdn' | |
220 | 224 | else: |
221 | 225 | cpv_group = fake.cpv()[:4] |
222 | 226 | if params.get('number_of_lots'): |
... | ... | @@ -911,3 +915,19 @@ def invalid_INN_data(): |
911 | 915 | }) |
912 | 916 | |
913 | 917 | |
918 | +def invalid_cost_data(): | |
919 | + return munchify({ | |
920 | + "scheme": "UA-ROAD", | |
921 | + "id": "М-15", | |
922 | + "description": "Одеса - Рені (на м. Бухарест)" | |
923 | + }) | |
924 | + | |
925 | + | |
926 | +def invalid_gmdn_data(): | |
927 | + return munchify({ | |
928 | + "scheme": "GMDN", | |
929 | + "id": "33110", | |
930 | + "description": "Коліматор радіонуклідної системи, високоенергетичний" | |
931 | + }) | |
932 | + | |
933 | + | ... | ... |
... | ... | @@ -16,6 +16,8 @@ ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | 18 | ${VAT_INCLUDED} ${True} |
19 | +${ROAD_INDEX} ${False} | |
20 | +${GMDN_INDEX} ${False} | |
19 | 21 | |
20 | 22 | *** Test Cases *** |
21 | 23 | ############################################################################################## | ... | ... |
... | ... | @@ -16,6 +16,8 @@ ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | 18 | ${VAT_INCLUDED} ${True} |
19 | +${ROAD_INDEX} ${False} | |
20 | +${GMDN_INDEX} ${False} | |
19 | 21 | |
20 | 22 | *** Test Cases *** |
21 | 23 | ############################################################################################## | ... | ... |
... | ... | @@ -27,6 +27,8 @@ class OP_Provider(BaseProvider): |
27 | 27 | classifications = _fake_data.classifications |
28 | 28 | cpvs = _fake_data.cpvs |
29 | 29 | moz_cpvs = _fake_data.moz_cpvs |
30 | + road_cpvs = _fake_data.road_cpvs | |
31 | + gmdn_cpvs = _fake_data.gmdn_cpvs | |
30 | 32 | items_base_data = _fake_data.items_base_data |
31 | 33 | rationale_types = _fake_data.rationale_types |
32 | 34 | title_of_milestones = _fake_data.title_of_milestones |
... | ... | @@ -119,6 +121,28 @@ class OP_Provider(BaseProvider): |
119 | 121 | return self.random_element(self.cpvs) |
120 | 122 | |
121 | 123 | @classmethod |
124 | + def road_cpv(self, cpv_group=None): | |
125 | + if cpv_group: | |
126 | + road_cpvs = [] | |
127 | + for cpv_element in self.road_cpvs: | |
128 | + if cpv_element.startswith(cpv_group): | |
129 | + road_cpvs.append(road_cpvs) | |
130 | + return self.random_element(road_cpvs) | |
131 | + else: | |
132 | + return self.random_element(self.road_cpvs) | |
133 | + | |
134 | + @classmethod | |
135 | + def gmdn_cpv(self, cpv_group=None): | |
136 | + if cpv_group: | |
137 | + gmdn_cpvs = [] | |
138 | + for cpv_element in self.gmdn_cpvs: | |
139 | + if cpv_element.startswith(cpv_group): | |
140 | + gmdn_cpvs.append(gmdn_cpvs) | |
141 | + return self.random_element(gmdn_cpvs) | |
142 | + else: | |
143 | + return self.random_element(self.gmdn_cpvs) | |
144 | + | |
145 | + @classmethod | |
122 | 146 | def fake_item(self, cpv_group=None): |
123 | 147 | """ |
124 | 148 | Generate a random item for openprocurement tenders |
... | ... | @@ -133,6 +157,10 @@ class OP_Provider(BaseProvider): |
133 | 157 | cpv = self.random_element(self.cpvs) |
134 | 158 | elif cpv_group == 336: |
135 | 159 | cpv = self.random_element(self.moz_cpvs) |
160 | + elif cpv_group == 'road': | |
161 | + cpv = self.random_element(self.road_cpvs) | |
162 | + elif cpv_group == 'gmdn': | |
163 | + cpv = self.random_element(self.gmdn_cpvs) | |
136 | 164 | else: |
137 | 165 | cpv_group = str(cpv_group) |
138 | 166 | similar_cpvs = [] | ... | ... |
... | ... | @@ -7872,6 +7872,259 @@ |
7872 | 7872 | "id": "33600000-6", |
7873 | 7873 | "description": "Фармацевтична продукція" |
7874 | 7874 | } |
7875 | + }, | |
7876 | + { | |
7877 | + "additionalClassifications": [ | |
7878 | + { | |
7879 | + "scheme": "UA-ROAD", | |
7880 | + "id": "М-15", | |
7881 | + "description": "Одеса - Рені (на м. Бухарест)" | |
7882 | + } | |
7883 | + ], | |
7884 | + "classification": { | |
7885 | + "scheme": "ДК021", | |
7886 | + "id": "34920000-2", | |
7887 | + "description": "Дорожнє обладнання" | |
7888 | + } | |
7889 | + }, | |
7890 | + { | |
7891 | + "additionalClassifications": [ | |
7892 | + { | |
7893 | + "scheme": "GMDN", | |
7894 | + "id": "33110", | |
7895 | + "description": "Коліматор радіонуклідної системи, високоенергетичний" | |
7896 | + } | |
7897 | + ], | |
7898 | + "classification": { | |
7899 | + "scheme": "ДК021", | |
7900 | + "id": "33110000-4", | |
7901 | + "description": "Візуалізаційне обладнання для потреб медицини, стоматології та ветеринарної медицини" | |
7902 | + } | |
7903 | + }, | |
7904 | + { | |
7905 | + "additionalClassifications": [ | |
7906 | + { | |
7907 | + "scheme": "UA-ROAD", | |
7908 | + "id": "М-05", | |
7909 | + "description": "Київ - Одеса" | |
7910 | + } | |
7911 | + ], | |
7912 | + "classification": { | |
7913 | + "scheme": "ДК021", | |
7914 | + "id": "71246000-4", | |
7915 | + "description": "Здійснення та документування необхідних будівельних розрахунків" | |
7916 | + } | |
7917 | + }, | |
7918 | + { | |
7919 | + "additionalClassifications": [ | |
7920 | + { | |
7921 | + "scheme": "GMDN", | |
7922 | + "id": "10098", | |
7923 | + "description": "Відкривач для ампул" | |
7924 | + } | |
7925 | + ], | |
7926 | + "classification": { | |
7927 | + "scheme": "ДК021", | |
7928 | + "id": "33792000-8", | |
7929 | + "description": "Скляний посуд фармацевтичного призначення" | |
7930 | + } | |
7931 | + }, | |
7932 | + { | |
7933 | + "additionalClassifications": [ | |
7934 | + { | |
7935 | + "scheme": "UA-ROAD", | |
7936 | + "id": "М-10", | |
7937 | + "description": "Львів - Краковець (на м. Краків)" | |
7938 | + } | |
7939 | + ], | |
7940 | + "classification": { | |
7941 | + "scheme": "ДК021", | |
7942 | + "id": "63712310-9", | |
7943 | + "description": "Послуги з експлуатації мостів" | |
7944 | + } | |
7945 | + }, | |
7946 | + { | |
7947 | + "additionalClassifications": [ | |
7948 | + { | |
7949 | + "scheme": "GMDN", | |
7950 | + "id": "17437", | |
7951 | + "description": "Опромінювач крові йонізівним промінням" | |
7952 | + } | |
7953 | + ], | |
7954 | + "classification": { | |
7955 | + "scheme": "ДК021", | |
7956 | + "id": "38945000-7", | |
7957 | + "description": "Лічильники гамма-частинок" | |
7958 | + } | |
7959 | + }, | |
7960 | + { | |
7961 | + "additionalClassifications": [ | |
7962 | + { | |
7963 | + "scheme": "UA-ROAD", | |
7964 | + "id": "М-01", | |
7965 | + "description": "Київ - Чернігів - Нові Яриловичі (на м. Гомель)" | |
7966 | + } | |
7967 | + ], | |
7968 | + "classification": { | |
7969 | + "scheme": "ДК021", | |
7970 | + "id": "34921000-9", | |
7971 | + "description": "Дорожньо-експлуатаційне обладнання" | |
7972 | + } | |
7973 | + }, | |
7974 | + { | |
7975 | + "additionalClassifications": [ | |
7976 | + { | |
7977 | + "scheme": "UA-ROAD", | |
7978 | + "id": "М-02", | |
7979 | + "description": "Кіпті - Глухів - Бачівськ (на м. Брянськ)" | |
7980 | + } | |
7981 | + ], | |
7982 | + "classification": { | |
7983 | + "scheme": "ДК021", | |
7984 | + "id": "34921100-0", | |
7985 | + "description": "Підмітально-прибиральні машини" | |
7986 | + } | |
7987 | + }, | |
7988 | + { | |
7989 | + "additionalClassifications": [ | |
7990 | + { | |
7991 | + "scheme": "UA-ROAD", | |
7992 | + "id": "М-03", | |
7993 | + "description": "Київ - Харків - Довжанський (на м. Ростов-на-Дону)" | |
7994 | + } | |
7995 | + ], | |
7996 | + "classification": { | |
7997 | + "scheme": "ДК021", | |
7998 | + "id": "71247000-1", | |
7999 | + "description": "Нагляд за будівельними роботами" | |
8000 | + } | |
8001 | + }, | |
8002 | + { | |
8003 | + "additionalClassifications": [ | |
8004 | + { | |
8005 | + "scheme": "UA-ROAD", | |
8006 | + "id": "М-04", | |
8007 | + "description": "Знам’янка - Луганськ - Ізварине (на м. Волгоград через мм. Дніпро, Донецьк)" | |
8008 | + | |
8009 | + } | |
8010 | + ], | |
8011 | + "classification": { | |
8012 | + "scheme": "ДК021", | |
8013 | + "id": "71248000-8", | |
8014 | + "description": "Технічний нагляд за проектами та документацією" | |
8015 | + } | |
8016 | + }, | |
8017 | + { | |
8018 | + "additionalClassifications": [ | |
8019 | + { | |
8020 | + "scheme": "UA-ROAD", | |
8021 | + "id": "М-19", | |
8022 | + "description": "Доманове (на м. Брест) - Ковель - Чернівці - Тереблече (на м. Бухарест)" | |
8023 | + } | |
8024 | + ], | |
8025 | + "classification": { | |
8026 | + "scheme": "ДК021", | |
8027 | + "id": "63712311-6", | |
8028 | + "description": "Послуги зі стягнення плати за користування мостами" | |
8029 | + } | |
8030 | + }, | |
8031 | + { | |
8032 | + "additionalClassifications": [ | |
8033 | + { | |
8034 | + "scheme": "UA-ROAD", | |
8035 | + "id": "М-27", | |
8036 | + "description": "Одеса - Чорноморськ" | |
8037 | + } | |
8038 | + ], | |
8039 | + "classification": { | |
8040 | + "scheme": "ДК021", | |
8041 | + "id": "63712320-2", | |
8042 | + "description": "Послуги зі стягнення плати за користування мостами" | |
8043 | + } | |
8044 | + }, | |
8045 | + { | |
8046 | + "additionalClassifications": [ | |
8047 | + { | |
8048 | + "scheme": "GMDN", | |
8049 | + "id": "10058", | |
8050 | + "description": "Пінцети обструкції дихальних шляхів" | |
8051 | + } | |
8052 | + ], | |
8053 | + "classification": { | |
8054 | + "scheme": "ДК021", | |
8055 | + "id": "33111000-1", | |
8056 | + "description": "Рентгенологічне обладнання" | |
8057 | + } | |
8058 | + }, | |
8059 | + { | |
8060 | + "additionalClassifications": [ | |
8061 | + { | |
8062 | + "scheme": "GMDN", | |
8063 | + "id": "10184", | |
8064 | + "description": "Багаторазовий каркас" | |
8065 | + } | |
8066 | + ], | |
8067 | + "classification": { | |
8068 | + "scheme": "ДК021", | |
8069 | + "id": "33111100-2", | |
8070 | + "description": "Рентгенівські столи" | |
8071 | + } | |
8072 | + }, | |
8073 | + { | |
8074 | + "additionalClassifications": [ | |
8075 | + { | |
8076 | + "scheme": "GMDN", | |
8077 | + "id": "10298", | |
8078 | + "description": "Стенд для чаші, таза" | |
8079 | + } | |
8080 | + ], | |
8081 | + "classification": { | |
8082 | + "scheme": "ДК021", | |
8083 | + "id": "33793000-5", | |
8084 | + "description": "Скляний посуд лабораторного призначення" | |
8085 | + } | |
8086 | + }, | |
8087 | + { | |
8088 | + "additionalClassifications": [ | |
8089 | + { | |
8090 | + "scheme": "GMDN", | |
8091 | + "id": "10531", | |
8092 | + "description": "Приліжкова шафа" | |
8093 | + } | |
8094 | + ], | |
8095 | + "classification": { | |
8096 | + "scheme": "ДК021", | |
8097 | + "id": "33791000-1", | |
8098 | + "description": "Скляний посуд санітарно-гігієнічного призначення" | |
8099 | + } | |
8100 | + }, | |
8101 | + { | |
8102 | + "additionalClassifications": [ | |
8103 | + { | |
8104 | + "scheme": "GMDN", | |
8105 | + "id": "10729", | |
8106 | + "description": "Центральний венозний катетер" | |
8107 | + } | |
8108 | + ], | |
8109 | + "classification": { | |
8110 | + "scheme": "ДК021", | |
8111 | + "id": "38946000-7", | |
8112 | + "description": "Вимірювачі пікової напруги в кіловольтах" | |
8113 | + } | |
8114 | + }, | |
8115 | + { | |
8116 | + "additionalClassifications": [ | |
8117 | + { | |
8118 | + "scheme": "GMDN", | |
8119 | + "id": "13201", | |
8120 | + "description": "Помпа для розведення барвника" | |
8121 | + } | |
8122 | + ], | |
8123 | + "classification": { | |
8124 | + "scheme": "ДК021", | |
8125 | + "id": "38947000-7", | |
8126 | + "description": "Рентгенологічні мікроаналізатори" | |
8127 | + } | |
7875 | 8128 | } |
7876 | 8129 | ], |
7877 | 8130 | "units": [ |
... | ... | @@ -7970,7 +8223,13 @@ |
7970 | 8223 | "30192130-1", |
7971 | 8224 | "30197600-2", |
7972 | 8225 | "30199000-0", |
7973 | - "99999999-9" | |
8226 | + "99999999-9", | |
8227 | + "34920000-2", | |
8228 | + "71246000-4", | |
8229 | + "63712320-2", | |
8230 | + "33110000-4", | |
8231 | + "33792000-8", | |
8232 | + "38945000-7" | |
7974 | 8233 | ], |
7975 | 8234 | "moz_cpvs": [ |
7976 | 8235 | "33615100-5", |
... | ... | @@ -7981,6 +8240,29 @@ |
7981 | 8240 | "33692100-8", |
7982 | 8241 | "33600000-6" |
7983 | 8242 | ], |
8243 | + "road_cpvs": [ | |
8244 | + "34920000-2", | |
8245 | + "34921000-9", | |
8246 | + "34921100-0", | |
8247 | + "71246000-4", | |
8248 | + "71247000-1", | |
8249 | + "71248000-8", | |
8250 | + "63712310-9", | |
8251 | + "63712311-6", | |
8252 | + "63712320-2" | |
8253 | + ], | |
8254 | + "gmdn_cpvs": [ | |
8255 | + "33110000-4", | |
8256 | + "33111000-1", | |
8257 | + "33111100-2", | |
8258 | + "33792000-8", | |
8259 | + "33793000-5", | |
8260 | + "33791000-1", | |
8261 | + "38945000-7", | |
8262 | + "38946000-7", | |
8263 | + "38947000-7" | |
8264 | + ], | |
8265 | + | |
7984 | 8266 | "items_base_data": [ |
7985 | 8267 | { |
7986 | 8268 | "cpv_id": "99999999-9", |
... | ... | @@ -8201,6 +8483,204 @@ |
8201 | 8483 | "code": "VI", |
8202 | 8484 | "name": "Флакон" |
8203 | 8485 | } |
8486 | + }, | |
8487 | + { | |
8488 | + "cpv_id": "34920000-2", | |
8489 | + "description": "Дорожнє обладнання", | |
8490 | + "description_ru": "Дорожное оборудование", | |
8491 | + "description_en": "Road Equipment", | |
8492 | + "quantity": 15, | |
8493 | + "unit": { | |
8494 | + "code": "H87", | |
8495 | + "name": "Штуки" | |
8496 | + } | |
8497 | + }, | |
8498 | + { | |
8499 | + "cpv_id": "33110000-4", | |
8500 | + "description": "Візуалізаційне обладнання для потреб медицини, стоматології та ветеринарної медицини", | |
8501 | + "description_ru": "Визуализационное оборудование", | |
8502 | + "description_en": "Visual Equipment", | |
8503 | + "quantity": 15, | |
8504 | + "unit": { | |
8505 | + "code": "H87", | |
8506 | + "name": "Штуки" | |
8507 | + } | |
8508 | + }, | |
8509 | + { | |
8510 | + "cpv_id": "71246000-4", | |
8511 | + "description": "Здійснення та документування необхідних будівельних розрахунків", | |
8512 | + "description_ru": "Здійснення та документування необхідних будівельних розрахунків", | |
8513 | + "description_en": "Implementation and documentation of necessary construction calculations", | |
8514 | + "quantity": 15, | |
8515 | + "unit": { | |
8516 | + "code": "H87", | |
8517 | + "name": "Штуки" | |
8518 | + } | |
8519 | + }, | |
8520 | + { | |
8521 | + "cpv_id": "33792000-8", | |
8522 | + "description": "Скляний посуд фармацевтичного призначення", | |
8523 | + "description_ru": "Скляний посуд фармацевтичного призначення", | |
8524 | + "description_en": "Glass Dishes for Pharmaceutical Purposes", | |
8525 | + "quantity": 15, | |
8526 | + "unit": { | |
8527 | + "code": "H87", | |
8528 | + "name": "Штуки" | |
8529 | + } | |
8530 | + }, | |
8531 | + { | |
8532 | + "cpv_id": "63712310-9", | |
8533 | + "description": "Послуги з експлуатації мостів", | |
8534 | + "description_ru": "Послуги з експлуатації мостів", | |
8535 | + "description_en": "Bridges service", | |
8536 | + "quantity": 15, | |
8537 | + "unit": { | |
8538 | + "code": "H87", | |
8539 | + "name": "Штуки" | |
8540 | + } | |
8541 | + }, | |
8542 | + { | |
8543 | + "cpv_id": "38945000-7", | |
8544 | + "description": "Лічильники гамма-частинок", | |
8545 | + "description_ru": "Лічильники гамма-частинок", | |
8546 | + "description_en": "Gamma Particle Counters", | |
8547 | + "quantity": 15, | |
8548 | + "unit": { | |
8549 | + "code": "H87", | |
8550 | + "name": "Штуки" | |
8551 | + } | |
8552 | + }, | |
8553 | + { | |
8554 | + "cpv_id": "34921000-9", | |
8555 | + "description": "Дорожньо-експлуатаційне обладнання", | |
8556 | + "description_ru": "Дорожньо-експлуатаційне обладнання", | |
8557 | + "description_en": "Road-maintenance equipment", | |
8558 | + "quantity": 15, | |
8559 | + "unit": { | |
8560 | + "code": "H87", | |
8561 | + "name": "Штуки" | |
8562 | + } | |
8563 | + }, | |
8564 | + { | |
8565 | + "cpv_id": "34921100-0", | |
8566 | + "description": "Підмітально-прибиральні машини", | |
8567 | + "description_ru": "Підмітально-прибиральні машини", | |
8568 | + "description_en": "Sweepers", | |
8569 | + "quantity": 15, | |
8570 | + "unit": { | |
8571 | + "code": "H87", | |
8572 | + "name": "Штуки" | |
8573 | + } | |
8574 | + }, | |
8575 | + { | |
8576 | + "cpv_id": "71247000-1", | |
8577 | + "description": "Нагляд за будівельними роботами", | |
8578 | + "description_ru": "Нагляд за будівельними роботами", | |
8579 | + "description_en": "Construction supervision", | |
8580 | + "quantity": 15, | |
8581 | + "unit": { | |
8582 | + "code": "H87", | |
8583 | + "name": "Штуки" | |
8584 | + } | |
8585 | + }, | |
8586 | + { | |
8587 | + "cpv_id": "71248000-8", | |
8588 | + "description": "Технічний нагляд за проектами та документацією", | |
8589 | + "description_ru": "Технічний нагляд за проектами та документацією", | |
8590 | + "description_en": "Technical supervision of projects and documentation", | |
8591 | + "quantity": 15, | |
8592 | + "unit": { | |
8593 | + "code": "H87", | |
8594 | + "name": "Штуки" | |
8595 | + } | |
8596 | + }, | |
8597 | + { | |
8598 | + "cpv_id": "63712311-6", | |
8599 | + "description": "Послуги зі стягнення плати за користування мостами", | |
8600 | + "description_ru": "Послуги зі стягнення плати за користування мостами", | |
8601 | + "description_en": "Services for charging for the use of bridges", | |
8602 | + "quantity": 15, | |
8603 | + "unit": { | |
8604 | + "code": "H87", | |
8605 | + "name": "Штуки" | |
8606 | + } | |
8607 | + }, | |
8608 | + { | |
8609 | + "cpv_id": "63712320-2", | |
8610 | + "description": "Послуги з експлуатації тунелів", | |
8611 | + "description_ru": "Послуги з експлуатації тунелів", | |
8612 | + "description_en": "Operation of tunnels", | |
8613 | + "quantity": 15, | |
8614 | + "unit": { | |
8615 | + "code": "H87", | |
8616 | + "name": "Штуки" | |
8617 | + } | |
8618 | + }, | |
8619 | + { | |
8620 | + "cpv_id": "33111000-1", | |
8621 | + "description": "Рентгенологічне обладнання", | |
8622 | + "description_ru": "Рентгенологічне обладнання", | |
8623 | + "description_en": "X-ray equipment", | |
8624 | + "quantity": 15, | |
8625 | + "unit": { | |
8626 | + "code": "H87", | |
8627 | + "name": "Штуки" | |
8628 | + } | |
8629 | + }, | |
8630 | + { | |
8631 | + "cpv_id": "33111100-2", | |
8632 | + "description": "Рентгенівські столи", | |
8633 | + "description_ru": "Рентгенівські столи", | |
8634 | + "description_en": "X-ray tables", | |
8635 | + "quantity": 15, | |
8636 | + "unit": { | |
8637 | + "code": "H87", | |
8638 | + "name": "Штуки" | |
8639 | + } | |
8640 | + }, | |
8641 | + { | |
8642 | + "cpv_id": "33793000-5", | |
8643 | + "description": "Скляний посуд лабораторного призначення", | |
8644 | + "description_ru": "Скляний посуд лабораторного призначення", | |
8645 | + "description_en": "Glassware for laboratory purposes", | |
8646 | + "quantity": 15, | |
8647 | + "unit": { | |
8648 | + "code": "H87", | |
8649 | + "name": "Штуки" | |
8650 | + } | |
8651 | + }, | |
8652 | + { | |
8653 | + "cpv_id": "33791000-1", | |
8654 | + "description": "Скляний посуд санітарно-гігієнічного призначення", | |
8655 | + "description_ru": "Скляний посуд санітарно-гігієнічного призначення", | |
8656 | + "description_en": "Glassware for sanitary purposes", | |
8657 | + "quantity": 15, | |
8658 | + "unit": { | |
8659 | + "code": "H87", | |
8660 | + "name": "Штуки" | |
8661 | + } | |
8662 | + }, | |
8663 | + { | |
8664 | + "cpv_id": "38946000-7", | |
8665 | + "description": "Вимірювачі пікової напруги в кіловольтах", | |
8666 | + "description_ru": "Вимірювачі пікової напруги в кіловольтах", | |
8667 | + "description_en": "Measuring Peak Volts in Kilowatts", | |
8668 | + "quantity": 15, | |
8669 | + "unit": { | |
8670 | + "code": "H87", | |
8671 | + "name": "Штуки" | |
8672 | + } | |
8673 | + }, | |
8674 | + { | |
8675 | + "cpv_id": "38947000-7", | |
8676 | + "description": "Рентгенологічні мікроаналізатори", | |
8677 | + "description_ru": "Рентгенологічні мікроаналізатори", | |
8678 | + "description_en": "X-ray Microanalysers", | |
8679 | + "quantity": 15, | |
8680 | + "unit": { | |
8681 | + "code": "H87", | |
8682 | + "name": "Штуки" | |
8683 | + } | |
8204 | 8684 | } |
8205 | 8685 | ], |
8206 | 8686 | "rationale_types": [ | ... | ... |
... | ... | @@ -18,6 +18,8 @@ ${LOT_MEAT} ${True} |
18 | 18 | ${ITEM_MEAT} ${True} |
19 | 19 | ${MOZ_INTEGRATION} ${False} |
20 | 20 | ${VAT_INCLUDED} ${True} |
21 | +${ROAD_INDEX} ${False} | |
22 | +${GMDN_INDEX} ${False} | |
21 | 23 | |
22 | 24 | *** Test Cases *** |
23 | 25 | Можливість оголосити тендер |
... | ... | @@ -110,6 +112,116 @@ ${VAT_INCLUDED} ${True} |
110 | 112 | Можливість оголосити тендер з використанням валідації для MNN ${8} |
111 | 113 | |
112 | 114 | |
115 | +Опублікувати тендер на закупівлю дорожніх робіт без додаткового класифікатора | |
116 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
117 | + ... tender_owner | |
118 | + ... ${USERS.users['${tender_owner}'].broker} | |
119 | + ... create_tender_cost_no_addclass level1 | |
120 | + ... critical | |
121 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
122 | + Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг ${1} | |
123 | + | |
124 | + | |
125 | +Неможливість опублікувати тендер на закупівлю дорожніх робіт з 2-ма додатковими класифікаторами | |
126 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
127 | + ... tender_owner | |
128 | + ... ${USERS.users['${tender_owner}'].broker} | |
129 | + ... create_tender_cost_2_addclass level1 | |
130 | + ... critical | |
131 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
132 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг ${2} | |
133 | + | |
134 | + | |
135 | +Неможливість опублікувати тендер на закупівлю дорожніх робіт з невалідним id дороги | |
136 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
137 | + ... tender_owner | |
138 | + ... ${USERS.users['${tender_owner}'].broker} | |
139 | + ... create_tender_cost_invalid_addclass_id level1 | |
140 | + ... critical | |
141 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
142 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг ${3} | |
143 | + | |
144 | + | |
145 | +Неможливість опублікувати тендер на закупівлю дорожніх робіт з невалідним description дороги | |
146 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
147 | + ... tender_owner | |
148 | + ... ${USERS.users['${tender_owner}'].broker} | |
149 | + ... create_tender_cost_invalid_addclass_description level1 | |
150 | + ... critical | |
151 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
152 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг ${4} | |
153 | + | |
154 | + | |
155 | +Неможливість опублікувати тендер cpv не відповідає додатковому класифікатору UA-ROAD | |
156 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
157 | + ... tender_owner | |
158 | + ... ${USERS.users['${tender_owner}'].broker} | |
159 | + ... create_tender_cost_invalid_addclass level1 | |
160 | + ... critical | |
161 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
162 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації Індекс автомобільних доріг ${5} | |
163 | + | |
164 | + | |
165 | +Опублікувати тендер на закупівлю медичних виробів без додаткового класифікатора | |
166 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
167 | + ... tender_owner | |
168 | + ... ${USERS.users['${tender_owner}'].broker} | |
169 | + ... create_tender_gmdn_no_addclass level1 | |
170 | + ... critical | |
171 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
172 | + Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${1} | |
173 | + | |
174 | + | |
175 | +Неможливість опублікувати на закупівлю медичних виробів з 2-ма додатковими класифікаторами | |
176 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
177 | + ... tender_owner | |
178 | + ... ${USERS.users['${tender_owner}'].broker} | |
179 | + ... create_tender_gmdn_2_addclass level1 | |
180 | + ... critical | |
181 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
182 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${2} | |
183 | + | |
184 | + | |
185 | +Неможливість опублікувати на закупівлю медичних виробів з невалідним id виробу | |
186 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
187 | + ... tender_owner | |
188 | + ... ${USERS.users['${tender_owner}'].broker} | |
189 | + ... create_tender_gmdn_invalid_addclass_id level1 | |
190 | + ... critical | |
191 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
192 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${3} | |
193 | + | |
194 | + | |
195 | +Неможливість опублікувати на закупівлю медичних виробів з невалідним description виробу | |
196 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
197 | + ... tender_owner | |
198 | + ... ${USERS.users['${tender_owner}'].broker} | |
199 | + ... create_tender_gmdn_invalid_addclass_description level1 | |
200 | + ... critical | |
201 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
202 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${4} | |
203 | + | |
204 | + | |
205 | +Неможливість опублікувати тендер cpv не відповідає додатковому класифікатору GMDN | |
206 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
207 | + ... tender_owner | |
208 | + ... ${USERS.users['${tender_owner}'].broker} | |
209 | + ... create_tender_gmdn_invalid_addclass level1 | |
210 | + ... critical | |
211 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
212 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${5} | |
213 | + | |
214 | + | |
215 | +Неможливість опублікувати тендер на закупівлю медичних виробів з INN | |
216 | + [Tags] ${USERS.users['${tender_owner}'].broker}: Оголошення тендера | |
217 | + ... tender_owner | |
218 | + ... ${USERS.users['${tender_owner}'].broker} | |
219 | + ... create_tender_gmdn_inn_addclass level1 | |
220 | + ... critical | |
221 | + [Teardown] Оновити LAST_MODIFICATION_DATE | |
222 | + Run Keyword And Expect Error * Можливість оголосити тендер з використанням валідації класифікатор медичних виробів ${6} | |
223 | + | |
224 | + | |
113 | 225 | Можливість знайти тендер по ідентифікатору |
114 | 226 | [Tags] ${USERS.users['${viewer}'].broker}: Пошук тендера |
115 | 227 | ... viewer tender_owner provider provider1 | ... | ... |
... | ... | @@ -16,6 +16,8 @@ ${LOT_MEAT} ${False} |
16 | 16 | ${ITEM_MEAT} ${False} |
17 | 17 | ${MOZ_INTEGRATION} ${False} |
18 | 18 | ${VAT_INCLUDED} ${True} |
19 | +${ROAD_INDEX} ${False} | |
20 | +${GMDN_INDEX} ${False} | |
19 | 21 | |
20 | 22 | *** Test Cases *** |
21 | 23 | ############################################################################################## | ... | ... |
... | ... | @@ -75,7 +75,9 @@ from .initial_data import ( |
75 | 75 | convert_amount, |
76 | 76 | get_number_of_minutes, |
77 | 77 | get_hash, |
78 | - invalid_INN_data | |
78 | + invalid_INN_data, | |
79 | + invalid_cost_data, | |
80 | + invalid_gmdn_data | |
79 | 81 | ) |
80 | 82 | from barbecue import chef |
81 | 83 | from restkit import request |
... | ... | @@ -698,3 +700,53 @@ def edit_tender_data_for_mnn(data, mode, data_version): |
698 | 700 | return munchify(dict_data) |
699 | 701 | |
700 | 702 | |
703 | +def edit_tender_data_for_cost(data, mode, data_version): | |
704 | + test_data = {3: 'PQ-17', 4: 'Дорога'} | |
705 | + dict_data = unmunchify(data) | |
706 | + | |
707 | + if data_version is 1: | |
708 | + dict_data['data']['items'][0].pop('additionalClassifications', None) | |
709 | + | |
710 | + if data_version is 2: | |
711 | + add_cost = invalid_cost_data() | |
712 | + dict_data['data']['items'][0]['additionalClassifications'].append(add_cost) | |
713 | + | |
714 | + if data_version is 3: | |
715 | + dict_data['data']['items'][0]['additionalClassifications'][0]['id'] = test_data[data_version] | |
716 | + | |
717 | + if data_version is 4: | |
718 | + dict_data['data']['items'][0]['additionalClassifications'][0]['description'] = test_data[data_version] | |
719 | + | |
720 | + if data_version is 5: | |
721 | + add_cost = invalid_cost_data() | |
722 | + dict_data['data']['items'][0]['additionalClassifications'][0] = add_cost | |
723 | + return munchify(dict_data) | |
724 | + | |
725 | + | |
726 | +def edit_tender_data_for_gmdn(data, mode, data_version): | |
727 | + gmdn_test_data = {3: '9999', 4: 'Виріб'} | |
728 | + dict_data = unmunchify(data) | |
729 | + | |
730 | + if data_version is 1: | |
731 | + dict_data['data']['items'][0].pop('additionalClassifications', None) | |
732 | + | |
733 | + if data_version is 2: | |
734 | + add_gmdn = invalid_gmdn_data() | |
735 | + dict_data['data']['items'][0]['additionalClassifications'].append(add_gmdn) | |
736 | + | |
737 | + if data_version is 3: | |
738 | + dict_data['data']['items'][0]['additionalClassifications'][0]['id'] = gmdn_test_data[data_version] | |
739 | + | |
740 | + if data_version is 4: | |
741 | + dict_data['data']['items'][0]['additionalClassifications'][0]['description'] = gmdn_test_data[data_version] | |
742 | + | |
743 | + if data_version is 5: | |
744 | + add_gmdn = invalid_gmdn_data() | |
745 | + dict_data['data']['items'][0]['additionalClassifications'][0] = add_gmdn | |
746 | + | |
747 | + if data_version is 6: | |
748 | + add_INN = invalid_INN_data() | |
749 | + dict_data['data']['items'][0]['additionalClassifications'].append(add_INN) | |
750 | + return munchify(dict_data) | |
751 | + | |
752 | + | ... | ... |
robot_tests_arguments/cost_validation.txt
0 → 100644
1 | +-v MODE:belowThreshold | |
2 | + | |
3 | +-v NUMBER_OF_ITEMS:1 | |
4 | +-v NUMBER_OF_LOTS:1 | |
5 | + | |
6 | +-v TENDER_MEAT:True | |
7 | +-v ITEM_MEAT:True | |
8 | +-v LOT_MEAT:True | |
9 | +-v ROAD_INDEX:True | |
10 | + | |
11 | +-i create_tender_cost_no_addclass | |
12 | + | |
13 | +-i create_tender_cost_2_addclass | |
14 | + | |
15 | +-i create_tender_cost_invalid_addclass_id | |
16 | + | |
17 | +-i create_tender_cost_invalid_addclass_description | ... | ... |
robot_tests_arguments/gmdn_validation.txt
0 → 100644
1 | +-v MODE:belowThreshold | |
2 | + | |
3 | +-v NUMBER_OF_ITEMS:1 | |
4 | +-v NUMBER_OF_LOTS:1 | |
5 | + | |
6 | +-v TENDER_MEAT:True | |
7 | +-v ITEM_MEAT:True | |
8 | +-v LOT_MEAT:True | |
9 | +-v GMDN_INDEX:True | |
10 | + | |
11 | +-i create_tender_gmdn_no_addclass | |
12 | + | |
13 | +-i create_tender_gmdn_2_addclass | |
14 | + | |
15 | +-i create_tender_gmdn_invalid_addclass_id | |
16 | + | |
17 | +-i create_tender_gmdn_invalid_addclass_description | |
18 | + | |
19 | +-i create_tender_gmdn_inn_addclass | |
20 | + | ... | ... |
Please
register
or
login
to post a comment