udata 7.0.5.dev28140__py2.py3-none-any.whl → 7.0.6__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of udata might be problematic. Click here for more details.
- udata/__init__.py +1 -1
- udata/commands/__init__.py +0 -3
- udata/commands/dcat.py +7 -4
- udata/core/activity/api.py +1 -1
- udata/core/activity/models.py +4 -3
- udata/core/activity/tasks.py +6 -5
- udata/core/dataset/factories.py +2 -4
- udata/core/dataset/models.py +2 -5
- udata/core/dataset/rdf.py +65 -25
- udata/core/dataset/search.py +0 -1
- udata/core/spatial/tests/test_api.py +7 -10
- udata/core/topic/factories.py +2 -2
- udata/harvest/backends/dcat.py +128 -24
- udata/harvest/tests/csw_dcat/XSLT.xml +4298 -0
- udata/harvest/tests/csw_dcat/geonetwork-iso-page-1.xml +1291 -0
- udata/harvest/tests/csw_dcat/geonetwork-iso-page-3.xml +1139 -0
- udata/harvest/tests/csw_dcat/geonetwork-iso-page-5.xml +1266 -0
- udata/harvest/tests/dcat/bnodes.xml +7 -1
- udata/harvest/tests/dcat/evian.json +464 -0
- udata/harvest/tests/test_dcat_backend.py +82 -9
- udata/migrations/2024-03-22-migrate-activity-kwargs-to-extras.py +16 -0
- udata/rdf.py +22 -1
- udata/search/__init__.py +2 -2
- udata/static/chunks/{11.c0ccea08914b6b41568e.js → 11.a23c110811a9ac943478.js} +3 -3
- udata/static/chunks/{11.c0ccea08914b6b41568e.js.map → 11.a23c110811a9ac943478.js.map} +1 -1
- udata/static/chunks/{13.526a25163ababaa44409.js → 13.0889e093f8664e38568c.js} +2 -2
- udata/static/chunks/{13.526a25163ababaa44409.js.map → 13.0889e093f8664e38568c.js.map} +1 -1
- udata/static/chunks/{16.7901839b4227881947f6.js → 16.f41599478d3e97ad9a30.js} +2 -2
- udata/static/chunks/{16.7901839b4227881947f6.js.map → 16.f41599478d3e97ad9a30.js.map} +1 -1
- udata/static/chunks/{19.471d5a2a08eef6e5338a.js → 19.2b534a26af8b17e9170b.js} +3 -3
- udata/static/chunks/{19.471d5a2a08eef6e5338a.js.map → 19.2b534a26af8b17e9170b.js.map} +1 -1
- udata/static/chunks/{5.534e0531d0e2b150146f.js → 5.7115454a1183e5c12eef.js} +3 -3
- udata/static/chunks/{5.534e0531d0e2b150146f.js.map → 5.7115454a1183e5c12eef.js.map} +1 -1
- udata/static/chunks/{6.e56975229e6065f68d2a.js → 6.16bb24fb8240f2746488.js} +3 -3
- udata/static/chunks/{6.e56975229e6065f68d2a.js.map → 6.16bb24fb8240f2746488.js.map} +1 -1
- udata/static/chunks/{9.534426728626f11f4571.js → 9.3e752966ff14e47e11f2.js} +2 -2
- udata/static/chunks/{9.534426728626f11f4571.js.map → 9.3e752966ff14e47e11f2.js.map} +1 -1
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/tests/api/test_datasets_api.py +45 -45
- udata/tests/api/test_me_api.py +13 -14
- udata/tests/dataset/test_dataset_actions.py +2 -2
- udata/tests/dataset/test_dataset_commands.py +3 -3
- udata/tests/dataset/test_dataset_model.py +2 -1
- udata/tests/organization/test_organization_model.py +3 -3
- udata/tests/organization/test_organization_rdf.py +3 -3
- udata/tests/reuse/test_reuse_model.py +2 -2
- udata/tests/search/test_adapter.py +12 -12
- udata/tests/search/test_results.py +4 -4
- udata/tests/site/test_site_api.py +3 -3
- udata/tests/site/test_site_metrics.py +3 -3
- udata/tests/site/test_site_rdf.py +6 -6
- udata/tests/test_activity.py +12 -0
- udata/tests/test_transfer.py +18 -17
- udata/translations/ar/LC_MESSAGES/udata.mo +0 -0
- udata/translations/ar/LC_MESSAGES/udata.po +90 -44
- udata/translations/de/LC_MESSAGES/udata.mo +0 -0
- udata/translations/de/LC_MESSAGES/udata.po +91 -45
- udata/translations/es/LC_MESSAGES/udata.mo +0 -0
- udata/translations/es/LC_MESSAGES/udata.po +90 -44
- udata/translations/fr/LC_MESSAGES/udata.mo +0 -0
- udata/translations/fr/LC_MESSAGES/udata.po +91 -45
- udata/translations/it/LC_MESSAGES/udata.mo +0 -0
- udata/translations/it/LC_MESSAGES/udata.po +90 -44
- udata/translations/pt/LC_MESSAGES/udata.mo +0 -0
- udata/translations/pt/LC_MESSAGES/udata.po +91 -45
- udata/translations/sr/LC_MESSAGES/udata.mo +0 -0
- udata/translations/sr/LC_MESSAGES/udata.po +91 -45
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/METADATA +13 -3
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/RECORD +74 -68
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/entry_points.txt +1 -0
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/LICENSE +0 -0
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/WHEEL +0 -0
- {udata-7.0.5.dev28140.dist-info → udata-7.0.6.dist-info}/top_level.txt +0 -0
udata/static/common.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var b=c[a]={exports:{},id:a,loaded:!1};return e[a].call(b.exports,b,b.exports,__webpack_require__),b.loaded=!0,b.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,f){for(var t,d
|
|
1
|
+
!function(e){function __webpack_require__(a){if(c[a])return c[a].exports;var b=c[a]={exports:{},id:a,loaded:!1};return e[a].call(b.exports,b,b.exports,__webpack_require__),b.loaded=!0,b.exports}var a=window.webpackJsonp;window.webpackJsonp=function(r,f){for(var t,_,d=0,n=[];d<r.length;d++)_=r[d],b[_]&&n.push.apply(n,b[_]),b[_]=0;for(t in f){var i=f[t];switch(typeof i){case"object":e[t]=function(a){var c=a.slice(1),b=a[0];return function(a,r,f){e[b].apply(this,[a,r,f].concat(c))}}(i);break;case"function":e[t]=i;break;default:e[t]=e[i]}}for(a&&a(r,f);n.length;)n.shift().call(null,__webpack_require__);if(f[0])return c[0]=0,__webpack_require__(0)};var c={},b={31:0};__webpack_require__.e=function(e,a){if(0===b[e])return a.call(null,__webpack_require__);if(void 0!==b[e])b[e].push(a);else{b[e]=[a];var c=document.getElementsByTagName("head")[0],r=document.createElement("script");r.type="text/javascript",r.charset="utf-8",r.async=!0,r.src=__webpack_require__.p+"chunks/"+e+"."+{0:"dd9000783a522bc2069d",1:"4a09db78b21075c05a30",2:"95c0fc4f129186dba94b",3:"1ca609753b5a02de0ca3",4:"379d0586872a1bae2ebd",5:"7115454a1183e5c12eef",6:"16bb24fb8240f2746488",7:"2ebc6662cf10a678b2ac",8:"17d1afb591ad1495bd03",9:"3e752966ff14e47e11f2",10:"e97ea231893dc435d6b5",11:"a23c110811a9ac943478",12:"d39612a569bcc3a358a8",13:"0889e093f8664e38568c",14:"cdb85e78de233e6556ff",15:"92b2cef3032ea35da04a",16:"f41599478d3e97ad9a30",17:"13db80c90b998be14e1b",18:"ad41fb75ac4226e1f3ce",19:"2b534a26af8b17e9170b",20:"14a92e5c503f74ff40df",21:"ccbfce6680a2b11a5284",22:"bc79367e5f4c8ad00038",23:"58f008bb10313268bf7d",24:"554ea613112f1ba6c246",25:"bebb170f65c104b18777",26:"9a0fd93accfc31686ed0",27:"dbd31d749f51f362b968",28:"c9c89e04a005ae62b473",29:"a0f8fce10d9e93e23b12",30:"9dc7b1b44817569daec6",32:"9b68f125e2598d22d5b5",33:"70f8e7b1964892a24e67"}[e]+".js",c.appendChild(r)}},__webpack_require__.m=e,__webpack_require__.c=c,__webpack_require__.p="/static/"}(function(e){for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a))switch(typeof e[a]){case"function":break;case"object":e[a]=function(a){var c=a.slice(1),b=e[a[0]];return function(e,a,r){b.apply(this,[e,a,r].concat(c))}}(e[a]);break;default:e[a]=e[e[a]]}return e}([]));
|
|
2
2
|
//# sourceMappingURL=common.js.map
|
udata/static/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap af2fbd64f908b4b6b777"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"dd9000783a522bc2069d\",\"1\":\"4a09db78b21075c05a30\",\"2\":\"95c0fc4f129186dba94b\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"379d0586872a1bae2ebd\",\"5\":\"534e0531d0e2b150146f\",\"6\":\"e56975229e6065f68d2a\",\"7\":\"2ebc6662cf10a678b2ac\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"534426728626f11f4571\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"c0ccea08914b6b41568e\",\"12\":\"d39612a569bcc3a358a8\",\"13\":\"526a25163ababaa44409\",\"14\":\"cdb85e78de233e6556ff\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"7901839b4227881947f6\",\"17\":\"13db80c90b998be14e1b\",\"18\":\"ad41fb75ac4226e1f3ce\",\"19\":\"471d5a2a08eef6e5338a\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"58f008bb10313268bf7d\",\"24\":\"554ea613112f1ba6c246\",\"25\":\"bebb170f65c104b18777\",\"26\":\"9a0fd93accfc31686ed0\",\"27\":\"dbd31d749f51f362b968\",\"28\":\"c9c89e04a005ae62b473\",\"29\":\"a0f8fce10d9e93e23b12\",\"30\":\"9dc7b1b44817569daec6\",\"32\":\"9b68f125e2598d22d5b5\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"dd9000783a522bc2069d\",\"1\":\"4a09db78b21075c05a30\",\"2\":\"95c0fc4f129186dba94b\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"379d0586872a1bae2ebd\",\"5\":\"534e0531d0e2b150146f\",\"6\":\"e56975229e6065f68d2a\",\"7\":\"2ebc6662cf10a678b2ac\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"534426728626f11f4571\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"c0ccea08914b6b41568e\",\"12\":\"d39612a569bcc3a358a8\",\"13\":\"526a25163ababaa44409\",\"14\":\"cdb85e78de233e6556ff\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"7901839b4227881947f6\",\"17\":\"13db80c90b998be14e1b\",\"18\":\"ad41fb75ac4226e1f3ce\",\"19\":\"471d5a2a08eef6e5338a\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"58f008bb10313268bf7d\",\"24\":\"554ea613112f1ba6c246\",\"25\":\"bebb170f65c104b18777\",\"26\":\"9a0fd93accfc31686ed0\",\"27\":\"dbd31d749f51f362b968\",\"28\":\"c9c89e04a005ae62b473\",\"29\":\"a0f8fce10d9e93e23b12\",\"30\":\"9dc7b1b44817569daec6\",\"32\":\"9b68f125e2598d22d5b5\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap af2fbd64f908b4b6b777\n **/"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"sources":["webpack:///common.js","webpack:///webpack/bootstrap 4d6737f13b4fdd696b36"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","parentJsonpFunction","window","chunkIds","moreModules","chunkId","i","callbacks","length","installedChunks","push","apply","_m","args","slice","templateId","a","b","c","this","concat","shift","31","e","callback","undefined","head","document","getElementsByTagName","script","createElement","type","charset","async","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","32","33","appendChild","m","Object","prototype","hasOwnProperty","fn"],"mappings":"CAAS,SAAUA,GCwDnB,QAAAC,qBAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,qBAGAI,EAAAE,QAAA,EAGAF,EAAAD,QA3EA,GAAAK,GAAAC,OAAA,YACAA,QAAA,sBAAAC,EAAAC,GAIA,IADA,GAAAV,GAAAW,EAAAC,EAAA,EAAAC,KACQD,EAAAH,EAAAK,OAAoBF,IAC5BD,EAAAF,EAAAG,GACAG,EAAAJ,IACAE,EAAAG,KAAAC,MAAAJ,EAAAE,EAAAJ,IACAI,EAAAJ,GAAA,CAEA,KAAAX,IAAAU,GAAA,CACA,GAAAQ,GAAAR,EAAAV,EAGA,cAAAkB,IACA,aAEApB,EAAAE,GAAA,SAAAkB,GACA,GAAAC,GAAAD,EAAAE,MAAA,GAAAC,EAAAH,EAAA,EACA,iBAAAI,EAAAC,EAAAC,GACA1B,EAAAuB,GAAAJ,MAAAQ,MAAAH,EAAAC,EAAAC,GAAAE,OAAAP,MAEMD,EACN,MACA,gBAEApB,EAAAE,GAAAkB,CACA,MACA,SAEApB,EAAAE,GAAAF,EAAAoB,IAKA,IADAX,KAAAE,EAAAC,GACAG,EAAAC,QACAD,EAAAc,QAAArB,KAAA,KAAAP,oBACA,IAAAW,EAAA,GAEA,MADAT,GAAA,KACAF,oBAAA,GAKA,IAAAE,MAKAc,GACAa,GAAA,EA6BA7B,qBAAA8B,EAAA,SAAAlB,EAAAmB,GAEA,OAAAf,EAAAJ,GACA,MAAAmB,GAAAxB,KAAA,KAAAP,oBAGA,IAAAgC,SAAAhB,EAAAJ,GACAI,EAAAJ,GAAAK,KAAAc,OACI,CAEJf,EAAAJ,IAAAmB,EACA,IAAAE,GAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,SACAD,GAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EAEAJ,EAAAK,IAAAzC,oBAAA0C,EAAA,UAAA9B,EAAA,KAAsE+B,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,uBAAAC,GAAA,wBAAk5B/D,GAAA,MACx9BqB,EAAA2C,YAAAxC,KAKApC,oBAAA6E,EAAA9E,EAGAC,oBAAAyB,EAAAvB,EAGAF,oBAAA0C,EAAA,YDIW,SAAS3C,GAEnB,IAAI,GAAIc,KAAKd,GACZ,GAAG+E,OAAOC,UAAUC,eAAezE,KAAKR,EAASc,GAChD,aAAcd,GAAQc,IACtB,IAAK,WAAY,KACjB,KAAK,SAEJd,EAAQc,GAAM,SAASM,GACtB,GAAIC,GAAOD,EAAGE,MAAM,GAAI4D,EAAKlF,EAAQoB,EAAG,GACxC,OAAO,UAAUI,EAAEC,EAAEC,GACpBwD,EAAG/D,MAAMQ,MAAOH,EAAEC,EAAEC,GAAGE,OAAOP,MAE9BrB,EAAQc,GACV,MACD,SAECd,EAAQc,GAAKd,EAAQA,EAAQc,IAKhC,MAAOd","file":"common.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId])\n/******/ \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tvar _m = moreModules[moduleId];\n/******/\n/******/ \t\t\t// Check if module is deduplicated\n/******/ \t\t\tswitch(typeof _m) {\n/******/ \t\t\tcase \"object\":\n/******/ \t\t\t\t// Module can be created from a template\n/******/ \t\t\t\tmodules[moduleId] = (function(_m) {\n/******/ \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n/******/ \t\t\t\t\treturn function (a,b,c) {\n/******/ \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n/******/ \t\t\t\t\t};\n/******/ \t\t\t\t}(_m));\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tcase \"function\":\n/******/ \t\t\t\t// Normal module\n/******/ \t\t\t\tmodules[moduleId] = _m;\n/******/ \t\t\t\tbreak;\n/******/ \t\t\tdefault:\n/******/ \t\t\t\t// Module is a copy of another module\n/******/ \t\t\t\tmodules[moduleId] = modules[_m];\n/******/ \t\t\t\tbreak;\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n/******/ \t\twhile(callbacks.length)\n/******/ \t\t\tcallbacks.shift().call(null, __webpack_require__);\n/******/ \t\tif(moreModules[0]) {\n/******/ \t\t\tinstalledModules[0] = 0;\n/******/ \t\t\treturn __webpack_require__(0);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// object to store loaded and loading chunks\n/******/ \t// \"0\" means \"already loaded\"\n/******/ \t// Array means \"loading\", array contains callbacks\n/******/ \tvar installedChunks = {\n/******/ \t\t31:0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n/******/ \t\t// \"0\" is the signal for \"already loaded\"\n/******/ \t\tif(installedChunks[chunkId] === 0)\n/******/ \t\t\treturn callback.call(null, __webpack_require__);\n/******/\n/******/ \t\t// an array means \"currently loading\".\n/******/ \t\tif(installedChunks[chunkId] !== undefined) {\n/******/ \t\t\tinstalledChunks[chunkId].push(callback);\n/******/ \t\t} else {\n/******/ \t\t\t// start chunk loading\n/******/ \t\t\tinstalledChunks[chunkId] = [callback];\n/******/ \t\t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\t\tvar script = document.createElement('script');\n/******/ \t\t\tscript.type = 'text/javascript';\n/******/ \t\t\tscript.charset = 'utf-8';\n/******/ \t\t\tscript.async = true;\n/******/\n/******/ \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"dd9000783a522bc2069d\",\"1\":\"4a09db78b21075c05a30\",\"2\":\"95c0fc4f129186dba94b\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"379d0586872a1bae2ebd\",\"5\":\"7115454a1183e5c12eef\",\"6\":\"16bb24fb8240f2746488\",\"7\":\"2ebc6662cf10a678b2ac\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"3e752966ff14e47e11f2\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"a23c110811a9ac943478\",\"12\":\"d39612a569bcc3a358a8\",\"13\":\"0889e093f8664e38568c\",\"14\":\"cdb85e78de233e6556ff\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"f41599478d3e97ad9a30\",\"17\":\"13db80c90b998be14e1b\",\"18\":\"ad41fb75ac4226e1f3ce\",\"19\":\"2b534a26af8b17e9170b\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"58f008bb10313268bf7d\",\"24\":\"554ea613112f1ba6c246\",\"25\":\"bebb170f65c104b18777\",\"26\":\"9a0fd93accfc31686ed0\",\"27\":\"dbd31d749f51f362b968\",\"28\":\"c9c89e04a005ae62b473\",\"29\":\"a0f8fce10d9e93e23b12\",\"30\":\"9dc7b1b44817569daec6\",\"32\":\"9b68f125e2598d22d5b5\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n/******/ \t\t\thead.appendChild(script);\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/static/\";\n/******/ })\n/************************************************************************/\n/******/ ((function(modules) {\n\t// Check all modules for deduplicated modules\n\tfor(var i in modules) {\n\t\tif(Object.prototype.hasOwnProperty.call(modules, i)) {\n\t\t\tswitch(typeof modules[i]) {\n\t\t\tcase \"function\": break;\n\t\t\tcase \"object\":\n\t\t\t\t// Module can be created from a template\n\t\t\t\tmodules[i] = (function(_m) {\n\t\t\t\t\tvar args = _m.slice(1), fn = modules[_m[0]];\n\t\t\t\t\treturn function (a,b,c) {\n\t\t\t\t\t\tfn.apply(this, [a,b,c].concat(args));\n\t\t\t\t\t};\n\t\t\t\t}(modules[i]));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// Module is a copy of another module\n\t\t\t\tmodules[i] = modules[modules[i]];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn modules;\n}([])));\n\n\n/** WEBPACK FOOTER **\n ** common.js\n **/"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, callbacks = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tcallbacks.push.apply(callbacks, installedChunks[chunkId]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tvar _m = moreModules[moduleId];\n\n \t\t\t// Check if module is deduplicated\n \t\t\tswitch(typeof _m) {\n \t\t\tcase \"object\":\n \t\t\t\t// Module can be created from a template\n \t\t\t\tmodules[moduleId] = (function(_m) {\n \t\t\t\t\tvar args = _m.slice(1), templateId = _m[0];\n \t\t\t\t\treturn function (a,b,c) {\n \t\t\t\t\t\tmodules[templateId].apply(this, [a,b,c].concat(args));\n \t\t\t\t\t};\n \t\t\t\t}(_m));\n \t\t\t\tbreak;\n \t\t\tcase \"function\":\n \t\t\t\t// Normal module\n \t\t\t\tmodules[moduleId] = _m;\n \t\t\t\tbreak;\n \t\t\tdefault:\n \t\t\t\t// Module is a copy of another module\n \t\t\t\tmodules[moduleId] = modules[_m];\n \t\t\t\tbreak;\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);\n \t\twhile(callbacks.length)\n \t\t\tcallbacks.shift().call(null, __webpack_require__);\n \t\tif(moreModules[0]) {\n \t\t\tinstalledModules[0] = 0;\n \t\t\treturn __webpack_require__(0);\n \t\t}\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// \"0\" means \"already loaded\"\n \t// Array means \"loading\", array contains callbacks\n \tvar installedChunks = {\n \t\t31:0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId, callback) {\n \t\t// \"0\" is the signal for \"already loaded\"\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn callback.call(null, __webpack_require__);\n\n \t\t// an array means \"currently loading\".\n \t\tif(installedChunks[chunkId] !== undefined) {\n \t\t\tinstalledChunks[chunkId].push(callback);\n \t\t} else {\n \t\t\t// start chunk loading\n \t\t\tinstalledChunks[chunkId] = [callback];\n \t\t\tvar head = document.getElementsByTagName('head')[0];\n \t\t\tvar script = document.createElement('script');\n \t\t\tscript.type = 'text/javascript';\n \t\t\tscript.charset = 'utf-8';\n \t\t\tscript.async = true;\n\n \t\t\tscript.src = __webpack_require__.p + \"chunks/\" + chunkId + \".\" + {\"0\":\"dd9000783a522bc2069d\",\"1\":\"4a09db78b21075c05a30\",\"2\":\"95c0fc4f129186dba94b\",\"3\":\"1ca609753b5a02de0ca3\",\"4\":\"379d0586872a1bae2ebd\",\"5\":\"7115454a1183e5c12eef\",\"6\":\"16bb24fb8240f2746488\",\"7\":\"2ebc6662cf10a678b2ac\",\"8\":\"17d1afb591ad1495bd03\",\"9\":\"3e752966ff14e47e11f2\",\"10\":\"e97ea231893dc435d6b5\",\"11\":\"a23c110811a9ac943478\",\"12\":\"d39612a569bcc3a358a8\",\"13\":\"0889e093f8664e38568c\",\"14\":\"cdb85e78de233e6556ff\",\"15\":\"92b2cef3032ea35da04a\",\"16\":\"f41599478d3e97ad9a30\",\"17\":\"13db80c90b998be14e1b\",\"18\":\"ad41fb75ac4226e1f3ce\",\"19\":\"2b534a26af8b17e9170b\",\"20\":\"14a92e5c503f74ff40df\",\"21\":\"ccbfce6680a2b11a5284\",\"22\":\"bc79367e5f4c8ad00038\",\"23\":\"58f008bb10313268bf7d\",\"24\":\"554ea613112f1ba6c246\",\"25\":\"bebb170f65c104b18777\",\"26\":\"9a0fd93accfc31686ed0\",\"27\":\"dbd31d749f51f362b968\",\"28\":\"c9c89e04a005ae62b473\",\"29\":\"a0f8fce10d9e93e23b12\",\"30\":\"9dc7b1b44817569daec6\",\"32\":\"9b68f125e2598d22d5b5\",\"33\":\"70f8e7b1964892a24e67\"}[chunkId] + \".js\";\n \t\t\thead.appendChild(script);\n \t\t}\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/static/\";\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4d6737f13b4fdd696b36\n **/"],"sourceRoot":""}
|
|
@@ -17,7 +17,7 @@ from udata.core.dataset.api_fields import (dataset_harvest_fields,
|
|
|
17
17
|
from udata.core.dataset.factories import (CommunityResourceFactory,
|
|
18
18
|
DatasetFactory, LicenseFactory,
|
|
19
19
|
ResourceFactory, ResourceSchemaMockData,
|
|
20
|
-
|
|
20
|
+
HiddenDatasetFactory)
|
|
21
21
|
from udata.core.dataset.models import (HarvestDatasetMetadata,
|
|
22
22
|
HarvestResourceMetadata, ResourceMixin)
|
|
23
23
|
from udata.core.organization.factories import OrganizationFactory
|
|
@@ -44,12 +44,13 @@ SAMPLE_GEOM = {
|
|
|
44
44
|
]
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
|
|
47
48
|
class DatasetAPITest(APITestCase):
|
|
48
49
|
modules = []
|
|
49
50
|
|
|
50
51
|
def test_dataset_api_list(self):
|
|
51
52
|
'''It should fetch a dataset list from the API'''
|
|
52
|
-
datasets = [
|
|
53
|
+
datasets = [DatasetFactory() for i in range(2)]
|
|
53
54
|
|
|
54
55
|
response = self.get(url_for('api.datasets'))
|
|
55
56
|
self.assert200(response)
|
|
@@ -58,10 +59,10 @@ class DatasetAPITest(APITestCase):
|
|
|
58
59
|
|
|
59
60
|
def test_dataset_api_full_text_search(self):
|
|
60
61
|
'''Should proceed to full text search on datasets'''
|
|
61
|
-
[
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
dataset =
|
|
62
|
+
[DatasetFactory() for i in range(2)]
|
|
63
|
+
DatasetFactory(title="some spécial integer")
|
|
64
|
+
DatasetFactory(title="some spécial float")
|
|
65
|
+
dataset = DatasetFactory(title="some spécial chars")
|
|
65
66
|
|
|
66
67
|
# with accent
|
|
67
68
|
response = self.get(url_for('api.datasets', q='some spécial chars'))
|
|
@@ -82,9 +83,9 @@ class DatasetAPITest(APITestCase):
|
|
|
82
83
|
def test_dataset_api_sorting(self):
|
|
83
84
|
'''Should sort datasets results from the API'''
|
|
84
85
|
self.login()
|
|
85
|
-
[
|
|
86
|
+
[DatasetFactory() for i in range(2)]
|
|
86
87
|
|
|
87
|
-
to_follow =
|
|
88
|
+
to_follow = DatasetFactory(title="dataset to follow")
|
|
88
89
|
|
|
89
90
|
response = self.post(url_for('api.dataset_followers', id=to_follow.id))
|
|
90
91
|
self.assert201(response)
|
|
@@ -100,8 +101,8 @@ class DatasetAPITest(APITestCase):
|
|
|
100
101
|
|
|
101
102
|
def test_dataset_api_sorting_created(self):
|
|
102
103
|
self.login()
|
|
103
|
-
first =
|
|
104
|
-
second =
|
|
104
|
+
first = DatasetFactory(title="first created dataset")
|
|
105
|
+
second = DatasetFactory(title="second created dataset")
|
|
105
106
|
response = self.get(url_for('api.datasets', sort='created'))
|
|
106
107
|
self.assert200(response)
|
|
107
108
|
self.assertEqual(response.json['data'][0]['id'], str(first.id))
|
|
@@ -123,8 +124,8 @@ class DatasetAPITest(APITestCase):
|
|
|
123
124
|
def test_dataset_api_default_sorting(self):
|
|
124
125
|
# Default sort should be -created
|
|
125
126
|
self.login()
|
|
126
|
-
[
|
|
127
|
-
last =
|
|
127
|
+
[DatasetFactory(title="some created dataset") for i in range(10)]
|
|
128
|
+
last = DatasetFactory(title="last created dataset")
|
|
128
129
|
response = self.get(url_for('api.datasets'))
|
|
129
130
|
self.assert200(response)
|
|
130
131
|
self.assertEqual(response.json['data'][0]['id'], str(last.id))
|
|
@@ -134,31 +135,31 @@ class DatasetAPITest(APITestCase):
|
|
|
134
135
|
owner = UserFactory()
|
|
135
136
|
org = OrganizationFactory()
|
|
136
137
|
|
|
137
|
-
[
|
|
138
|
+
[DatasetFactory() for i in range(2)]
|
|
138
139
|
|
|
139
|
-
tag_dataset =
|
|
140
|
-
license_dataset =
|
|
140
|
+
tag_dataset = DatasetFactory(tags=['my-tag', 'other'])
|
|
141
|
+
license_dataset = DatasetFactory(license=LicenseFactory(id='cc-by'))
|
|
141
142
|
format_dataset = DatasetFactory(resources=[ResourceFactory(format='my-format')])
|
|
142
|
-
featured_dataset =
|
|
143
|
-
topic_dataset =
|
|
143
|
+
featured_dataset = DatasetFactory(featured=True)
|
|
144
|
+
topic_dataset = DatasetFactory()
|
|
144
145
|
topic = TopicFactory(datasets=[topic_dataset])
|
|
145
146
|
|
|
146
147
|
paca, _, _ = create_geozones_fixtures()
|
|
147
|
-
geozone_dataset =
|
|
148
|
-
granularity_dataset =
|
|
148
|
+
geozone_dataset = DatasetFactory(spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
149
|
+
granularity_dataset = DatasetFactory(
|
|
149
150
|
spatial=SpatialCoverageFactory(granularity='country')
|
|
150
151
|
)
|
|
151
152
|
|
|
152
153
|
temporal_coverage = db.DateRange(start='2022-05-03', end='2022-05-04')
|
|
153
154
|
temporal_coverage_dataset = DatasetFactory(temporal_coverage=temporal_coverage)
|
|
154
155
|
|
|
155
|
-
owner_dataset =
|
|
156
|
-
org_dataset =
|
|
156
|
+
owner_dataset = DatasetFactory(owner=owner)
|
|
157
|
+
org_dataset = DatasetFactory(organization=org)
|
|
157
158
|
|
|
158
|
-
schema_dataset =
|
|
159
|
+
schema_dataset = DatasetFactory(resources=[
|
|
159
160
|
ResourceFactory(schema={'name': 'my-schema', 'url': 'https://example.org', 'version': '1.0.0'})
|
|
160
161
|
])
|
|
161
|
-
schema_version2_dataset =
|
|
162
|
+
schema_version2_dataset = DatasetFactory(resources=[
|
|
162
163
|
ResourceFactory(schema={'name': 'other-schema', 'url': 'https://example.org', 'version': '2.0.0'})
|
|
163
164
|
])
|
|
164
165
|
|
|
@@ -270,7 +271,7 @@ class DatasetAPITest(APITestCase):
|
|
|
270
271
|
|
|
271
272
|
def test_dataset_api_get_deleted(self):
|
|
272
273
|
'''It should not fetch a deleted dataset from the API and raise 410'''
|
|
273
|
-
dataset =
|
|
274
|
+
dataset = DatasetFactory(deleted=datetime.utcnow())
|
|
274
275
|
|
|
275
276
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
276
277
|
self.assert410(response)
|
|
@@ -278,7 +279,7 @@ class DatasetAPITest(APITestCase):
|
|
|
278
279
|
def test_dataset_api_get_deleted_but_authorized(self):
|
|
279
280
|
'''It should a deleted dataset from the API if user is authorized'''
|
|
280
281
|
self.login()
|
|
281
|
-
dataset =
|
|
282
|
+
dataset = DatasetFactory(owner=self.user,
|
|
282
283
|
deleted=datetime.utcnow())
|
|
283
284
|
|
|
284
285
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
@@ -451,7 +452,7 @@ class DatasetAPITest(APITestCase):
|
|
|
451
452
|
def test_dataset_api_update_with_resources(self):
|
|
452
453
|
'''It should update a dataset from the API with resources parameters'''
|
|
453
454
|
user = self.login()
|
|
454
|
-
dataset =
|
|
455
|
+
dataset = DatasetFactory(owner=user)
|
|
455
456
|
initial_length = len(dataset.resources)
|
|
456
457
|
data = dataset.to_dict()
|
|
457
458
|
data['resources'].append(ResourceFactory.as_dict())
|
|
@@ -464,7 +465,7 @@ class DatasetAPITest(APITestCase):
|
|
|
464
465
|
|
|
465
466
|
def test_dataset_api_update_private(self):
|
|
466
467
|
user = self.login()
|
|
467
|
-
dataset =
|
|
468
|
+
dataset = HiddenDatasetFactory(owner=user)
|
|
468
469
|
data = dataset.to_dict()
|
|
469
470
|
data['description'] = 'new description'
|
|
470
471
|
del data['private']
|
|
@@ -487,12 +488,10 @@ class DatasetAPITest(APITestCase):
|
|
|
487
488
|
dataset.reload()
|
|
488
489
|
self.assertEqual(dataset.private, True)
|
|
489
490
|
|
|
490
|
-
|
|
491
|
-
|
|
492
491
|
def test_dataset_api_update_new_resource_with_extras(self):
|
|
493
492
|
'''It should update a dataset with a new resource with extras'''
|
|
494
493
|
user = self.login()
|
|
495
|
-
dataset =
|
|
494
|
+
dataset = DatasetFactory(owner=user)
|
|
496
495
|
data = dataset.to_dict()
|
|
497
496
|
resource_data = ResourceFactory.as_dict()
|
|
498
497
|
resource_data['extras'] = {'extra:id': 'id'}
|
|
@@ -508,7 +507,7 @@ class DatasetAPITest(APITestCase):
|
|
|
508
507
|
def test_dataset_api_update_existing_resource_with_extras(self):
|
|
509
508
|
'''It should update a dataset's existing resource with extras'''
|
|
510
509
|
user = self.login()
|
|
511
|
-
dataset =
|
|
510
|
+
dataset = DatasetFactory(owner=user, nb_resources=1)
|
|
512
511
|
data = dataset.to_dict()
|
|
513
512
|
data['resources'][0]['extras'] = {'extra:id': 'id'}
|
|
514
513
|
response = self.put(url_for('api.dataset', dataset=dataset), data)
|
|
@@ -683,7 +682,7 @@ class DatasetAPITest(APITestCase):
|
|
|
683
682
|
def test_dataset_api_delete(self):
|
|
684
683
|
'''It should delete a dataset from the API'''
|
|
685
684
|
user = self.login()
|
|
686
|
-
dataset =
|
|
685
|
+
dataset = DatasetFactory(owner=user, nb_resources=1)
|
|
687
686
|
response = self.delete(url_for('api.dataset', dataset=dataset))
|
|
688
687
|
|
|
689
688
|
self.assertStatus(response, 204)
|
|
@@ -697,7 +696,7 @@ class DatasetAPITest(APITestCase):
|
|
|
697
696
|
def test_dataset_api_delete_deleted(self):
|
|
698
697
|
'''It should delete a deleted dataset from the API and raise 410'''
|
|
699
698
|
user = self.login()
|
|
700
|
-
dataset =
|
|
699
|
+
dataset = DatasetFactory(owner=user, deleted=datetime.utcnow(), nb_resources=1)
|
|
701
700
|
response = self.delete(url_for('api.dataset', dataset=dataset))
|
|
702
701
|
|
|
703
702
|
self.assert410(response)
|
|
@@ -1472,8 +1471,8 @@ class DatasetArchivedAPITest(APITestCase):
|
|
|
1472
1471
|
|
|
1473
1472
|
def test_dataset_api_search_archived(self):
|
|
1474
1473
|
'''It should search datasets from the API, excluding archived ones'''
|
|
1475
|
-
|
|
1476
|
-
dataset =
|
|
1474
|
+
DatasetFactory(archived=None)
|
|
1475
|
+
dataset = DatasetFactory(archived=datetime.utcnow())
|
|
1477
1476
|
|
|
1478
1477
|
response = self.get(url_for('api.datasets', q=''))
|
|
1479
1478
|
self.assert200(response)
|
|
@@ -1483,7 +1482,7 @@ class DatasetArchivedAPITest(APITestCase):
|
|
|
1483
1482
|
|
|
1484
1483
|
def test_dataset_api_get_archived(self):
|
|
1485
1484
|
'''It should fetch an archived dataset from the API and return 200'''
|
|
1486
|
-
dataset =
|
|
1485
|
+
dataset = DatasetFactory(archived=datetime.utcnow())
|
|
1487
1486
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
1488
1487
|
self.assert200(response)
|
|
1489
1488
|
|
|
@@ -1528,7 +1527,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1528
1527
|
|
|
1529
1528
|
def test_community_resource_api_create_dataset_binding(self):
|
|
1530
1529
|
'''It should create a community resource linked to the right dataset'''
|
|
1531
|
-
dataset =
|
|
1530
|
+
dataset = DatasetFactory()
|
|
1532
1531
|
self.login()
|
|
1533
1532
|
response = self.post(
|
|
1534
1533
|
url_for('api.upload_new_community_resource', dataset=dataset),
|
|
@@ -1540,7 +1539,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1540
1539
|
|
|
1541
1540
|
def test_community_resource_api_create(self):
|
|
1542
1541
|
'''It should create a community resource from the API'''
|
|
1543
|
-
dataset =
|
|
1542
|
+
dataset = DatasetFactory()
|
|
1544
1543
|
self.login()
|
|
1545
1544
|
response = self.post(
|
|
1546
1545
|
url_for('api.upload_new_community_resource', dataset=dataset),
|
|
@@ -1560,7 +1559,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1560
1559
|
|
|
1561
1560
|
def test_community_resource_api_create_as_org(self):
|
|
1562
1561
|
'''It should create a community resource as org from the API'''
|
|
1563
|
-
dataset =
|
|
1562
|
+
dataset = DatasetFactory()
|
|
1564
1563
|
user = self.login()
|
|
1565
1564
|
org = OrganizationFactory(members=[
|
|
1566
1565
|
Member(user=user, role='admin')
|
|
@@ -1612,7 +1611,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1612
1611
|
|
|
1613
1612
|
def test_community_resource_api_update_with_file(self):
|
|
1614
1613
|
'''It should update a community resource file from the API'''
|
|
1615
|
-
dataset =
|
|
1614
|
+
dataset = DatasetFactory()
|
|
1616
1615
|
user = self.login()
|
|
1617
1616
|
community_resource = CommunityResourceFactory(dataset=dataset,
|
|
1618
1617
|
owner=user)
|
|
@@ -1637,7 +1636,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1637
1636
|
|
|
1638
1637
|
def test_community_resource_file_update_old_file_deletion(self):
|
|
1639
1638
|
'''It should update a community resource's file and delete the old one'''
|
|
1640
|
-
dataset =
|
|
1639
|
+
dataset = DatasetFactory()
|
|
1641
1640
|
user = self.login()
|
|
1642
1641
|
community_resource = CommunityResourceFactory(dataset=dataset,
|
|
1643
1642
|
owner=user)
|
|
@@ -1664,7 +1663,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1664
1663
|
def test_community_resource_api_create_remote(self):
|
|
1665
1664
|
'''It should create a remote community resource from the API'''
|
|
1666
1665
|
user = self.login()
|
|
1667
|
-
dataset =
|
|
1666
|
+
dataset = DatasetFactory()
|
|
1668
1667
|
attrs = CommunityResourceFactory.as_dict()
|
|
1669
1668
|
attrs['filetype'] = 'remote'
|
|
1670
1669
|
attrs['dataset'] = str(dataset.id)
|
|
@@ -1685,7 +1684,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1685
1684
|
def test_community_resource_api_unallowed_create_filetype_file(self):
|
|
1686
1685
|
'''It should create a remote community resource from the API'''
|
|
1687
1686
|
self.login()
|
|
1688
|
-
dataset =
|
|
1687
|
+
dataset = DatasetFactory()
|
|
1689
1688
|
attrs = CommunityResourceFactory.as_dict()
|
|
1690
1689
|
attrs['filetype'] = 'file' # to be explicit
|
|
1691
1690
|
attrs['dataset'] = str(dataset.id)
|
|
@@ -1734,7 +1733,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1734
1733
|
self.assertEqual(CommunityResource.objects.count(), 0)
|
|
1735
1734
|
|
|
1736
1735
|
def test_community_resource_api_delete(self):
|
|
1737
|
-
dataset =
|
|
1736
|
+
dataset = DatasetFactory()
|
|
1738
1737
|
self.login()
|
|
1739
1738
|
|
|
1740
1739
|
response = self.post(
|
|
@@ -1791,7 +1790,8 @@ class DatasetSchemasAPITest:
|
|
|
1791
1790
|
assert response.json == []
|
|
1792
1791
|
|
|
1793
1792
|
@pytest.mark.options(SCHEMA_CATALOG_URL='https://example.com/notfound')
|
|
1794
|
-
def test_dataset_schemas_api_list_not_found(self, api):
|
|
1793
|
+
def test_dataset_schemas_api_list_not_found(self, api, rmock):
|
|
1794
|
+
rmock.get('https://example.com/notfound', status_code=404)
|
|
1795
1795
|
response = api.get(url_for('api.schemas'))
|
|
1796
1796
|
assert404(response)
|
|
1797
1797
|
|
udata/tests/api/test_me_api.py
CHANGED
|
@@ -6,8 +6,7 @@ from udata.models import Discussion, Follow, Member, User
|
|
|
6
6
|
from udata.core.discussions.models import Message as DiscMsg
|
|
7
7
|
from udata.core.dataset.factories import (
|
|
8
8
|
CommunityResourceFactory,
|
|
9
|
-
DatasetFactory
|
|
10
|
-
VisibleDatasetFactory,
|
|
9
|
+
DatasetFactory
|
|
11
10
|
)
|
|
12
11
|
from udata.core.dataset.activities import UserCreatedDataset
|
|
13
12
|
from udata.core.discussions.factories import DiscussionFactory
|
|
@@ -89,9 +88,9 @@ class MeAPITest(APITestCase):
|
|
|
89
88
|
member = Member(user=user, role='editor')
|
|
90
89
|
organization = OrganizationFactory(members=[member])
|
|
91
90
|
community_resources = [
|
|
92
|
-
|
|
91
|
+
DatasetFactory(owner=user) for _ in range(2)]
|
|
93
92
|
org_datasets = [
|
|
94
|
-
|
|
93
|
+
DatasetFactory(organization=organization)
|
|
95
94
|
for _ in range(2)]
|
|
96
95
|
|
|
97
96
|
response = self.get(url_for('api.my_org_datasets'))
|
|
@@ -105,15 +104,15 @@ class MeAPITest(APITestCase):
|
|
|
105
104
|
member = Member(user=user, role='editor')
|
|
106
105
|
organization = OrganizationFactory(members=[member])
|
|
107
106
|
datasets = [
|
|
108
|
-
|
|
107
|
+
DatasetFactory(owner=user, title='foô'),
|
|
109
108
|
]
|
|
110
109
|
org_datasets = [
|
|
111
|
-
|
|
110
|
+
DatasetFactory(organization=organization, title='foô'),
|
|
112
111
|
]
|
|
113
112
|
|
|
114
113
|
# Should not be listed.
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
DatasetFactory(owner=user)
|
|
115
|
+
DatasetFactory(organization=organization)
|
|
117
116
|
|
|
118
117
|
response = self.get(url_for('api.my_org_datasets'),
|
|
119
118
|
qs={'q': 'foô'})
|
|
@@ -195,8 +194,8 @@ class MeAPITest(APITestCase):
|
|
|
195
194
|
organization = OrganizationFactory(members=[member])
|
|
196
195
|
reuse = ReuseFactory(owner=user)
|
|
197
196
|
org_reuse = ReuseFactory(organization=organization)
|
|
198
|
-
dataset =
|
|
199
|
-
org_dataset =
|
|
197
|
+
dataset = DatasetFactory(owner=user)
|
|
198
|
+
org_dataset = DatasetFactory(organization=organization)
|
|
200
199
|
|
|
201
200
|
discussions = [
|
|
202
201
|
Discussion.objects.create(subject=dataset, title='', user=user),
|
|
@@ -206,7 +205,7 @@ class MeAPITest(APITestCase):
|
|
|
206
205
|
]
|
|
207
206
|
|
|
208
207
|
# Should not be listed
|
|
209
|
-
Discussion.objects.create(subject=
|
|
208
|
+
Discussion.objects.create(subject=DatasetFactory(), title='', user=user)
|
|
210
209
|
Discussion.objects.create(subject=ReuseFactory(), title='', user=user)
|
|
211
210
|
|
|
212
211
|
response = self.get(url_for('api.my_org_discussions'))
|
|
@@ -219,8 +218,8 @@ class MeAPITest(APITestCase):
|
|
|
219
218
|
organization = OrganizationFactory(members=[member])
|
|
220
219
|
reuse = ReuseFactory(owner=user)
|
|
221
220
|
org_reuse = ReuseFactory(organization=organization)
|
|
222
|
-
dataset =
|
|
223
|
-
org_dataset =
|
|
221
|
+
dataset = DatasetFactory(owner=user)
|
|
222
|
+
org_dataset = DatasetFactory(organization=organization)
|
|
224
223
|
|
|
225
224
|
discussions = [
|
|
226
225
|
Discussion.objects.create(subject=dataset, title='foô', user=user),
|
|
@@ -232,7 +231,7 @@ class MeAPITest(APITestCase):
|
|
|
232
231
|
Discussion.objects.create(subject=org_dataset, title='', user=user),
|
|
233
232
|
|
|
234
233
|
# Should really not be listed.
|
|
235
|
-
Discussion.objects.create(subject=
|
|
234
|
+
Discussion.objects.create(subject=DatasetFactory(), title='foô', user=user)
|
|
236
235
|
Discussion.objects.create(subject=ReuseFactory(), title='foô', user=user)
|
|
237
236
|
|
|
238
237
|
response = self.get(url_for('api.my_org_discussions'), qs={'q': 'foô'})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
3
|
from udata.core.dataset.actions import archive
|
|
4
|
-
from udata.core.dataset.factories import
|
|
4
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
5
5
|
from udata.core.discussions.models import Discussion
|
|
6
6
|
from udata.core.user.factories import UserFactory
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ class DatasetActionsTest:
|
|
|
13
13
|
user = UserFactory()
|
|
14
14
|
app.config['ARCHIVE_COMMENT_USER_ID'] = user.id
|
|
15
15
|
|
|
16
|
-
dataset =
|
|
16
|
+
dataset = DatasetFactory()
|
|
17
17
|
|
|
18
18
|
archive(dataset, comment=True)
|
|
19
19
|
|
|
@@ -2,14 +2,14 @@ import pytest
|
|
|
2
2
|
|
|
3
3
|
from tempfile import NamedTemporaryFile
|
|
4
4
|
|
|
5
|
-
from udata.core.dataset.factories import
|
|
5
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
@pytest.mark.usefixtures('clean_db')
|
|
9
9
|
class DatasetCommandTest:
|
|
10
10
|
|
|
11
11
|
def test_dataset_archive_one(self, cli):
|
|
12
|
-
dataset =
|
|
12
|
+
dataset = DatasetFactory()
|
|
13
13
|
|
|
14
14
|
cli('dataset', 'archive-one', str(dataset.id))
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ class DatasetCommandTest:
|
|
|
17
17
|
assert dataset.archived is not None
|
|
18
18
|
|
|
19
19
|
def test_dataset_archive(self, cli):
|
|
20
|
-
datasets = [
|
|
20
|
+
datasets = [DatasetFactory() for _ in range(2)]
|
|
21
21
|
|
|
22
22
|
with NamedTemporaryFile(mode='w', encoding='utf8') as temp:
|
|
23
23
|
temp.write('\n'.join((str(d.id) for d in datasets)))
|
|
@@ -524,7 +524,8 @@ class LicenseModelTest:
|
|
|
524
524
|
|
|
525
525
|
class ResourceSchemaTest:
|
|
526
526
|
@pytest.mark.options(SCHEMA_CATALOG_URL='https://example.com/notfound')
|
|
527
|
-
def test_resource_schema_objects_404_endpoint(self):
|
|
527
|
+
def test_resource_schema_objects_404_endpoint(self, rmock):
|
|
528
|
+
rmock.get('https://example.com/notfound', status_code=404)
|
|
528
529
|
with pytest.raises(SchemasCatalogNotFoundException):
|
|
529
530
|
ResourceSchema.objects()
|
|
530
531
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
|
|
3
|
-
from udata.core.dataset.factories import DatasetFactory,
|
|
3
|
+
from udata.core.dataset.factories import DatasetFactory, HiddenDatasetFactory
|
|
4
4
|
from udata.core.organization.factories import OrganizationFactory
|
|
5
5
|
from udata.core.followers.signals import on_follow, on_unfollow
|
|
6
6
|
from udata.core.reuse.factories import ReuseFactory, VisibleReuseFactory
|
|
@@ -27,8 +27,8 @@ class OrganizationModelTest(TestCase, DBTestMixin):
|
|
|
27
27
|
reuse = VisibleReuseFactory(organization=org)
|
|
28
28
|
ReuseFactory(organization=org)
|
|
29
29
|
with assert_emit(Dataset.on_create):
|
|
30
|
-
dataset =
|
|
31
|
-
|
|
30
|
+
dataset = DatasetFactory(organization=org)
|
|
31
|
+
HiddenDatasetFactory(organization=org)
|
|
32
32
|
with assert_emit(on_follow):
|
|
33
33
|
follow = Follow.objects.create(following=org, follower=UserFactory(),
|
|
34
34
|
since=datetime.utcnow())
|
|
@@ -9,7 +9,7 @@ from udata.rdf import DCAT, DCT, HYDRA
|
|
|
9
9
|
from udata.tests import TestCase, DBTestMixin
|
|
10
10
|
from udata.core.organization.factories import OrganizationFactory
|
|
11
11
|
from udata.core.organization.rdf import organization_to_rdf, build_org_catalog
|
|
12
|
-
from udata.core.dataset.factories import
|
|
12
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
13
13
|
from udata.core.dataset.models import Dataset
|
|
14
14
|
from udata.utils import faker
|
|
15
15
|
|
|
@@ -57,7 +57,7 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
|
|
|
57
57
|
origin_org = OrganizationFactory()
|
|
58
58
|
uri = url_for('api.organization_rdf', org=origin_org.id, _external=True)
|
|
59
59
|
|
|
60
|
-
datasets =
|
|
60
|
+
datasets = DatasetFactory.create_batch(3, organization=origin_org)
|
|
61
61
|
catalog = build_org_catalog(origin_org, datasets)
|
|
62
62
|
|
|
63
63
|
graph = catalog.graph
|
|
@@ -93,7 +93,7 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
|
|
|
93
93
|
page=1, page_size=page_size, _external=True)
|
|
94
94
|
uri_last = url_for('api.organization_rdf_format', org=origin_org.id, format='json',
|
|
95
95
|
page=2, page_size=page_size, _external=True)
|
|
96
|
-
|
|
96
|
+
DatasetFactory.create_batch(total, organization=origin_org)
|
|
97
97
|
|
|
98
98
|
# First page
|
|
99
99
|
datasets = Dataset.objects.paginate(1, page_size)
|
|
@@ -5,7 +5,7 @@ from udata.models import Reuse
|
|
|
5
5
|
from udata.core.dataset import tasks as dataset_tasks
|
|
6
6
|
from udata.core.organization.factories import OrganizationFactory
|
|
7
7
|
from udata.core.reuse.factories import ReuseFactory, VisibleReuseFactory
|
|
8
|
-
from udata.core.dataset.factories import
|
|
8
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
9
9
|
from udata.core.user.factories import UserFactory
|
|
10
10
|
from udata.core.discussions.factories import DiscussionFactory
|
|
11
11
|
from udata.i18n import gettext as _
|
|
@@ -65,7 +65,7 @@ class ReuseModelTest(TestCase, DBTestMixin):
|
|
|
65
65
|
reuse.save()
|
|
66
66
|
|
|
67
67
|
def test_reuse_metrics(self):
|
|
68
|
-
dataset =
|
|
68
|
+
dataset = DatasetFactory()
|
|
69
69
|
reuse = VisibleReuseFactory()
|
|
70
70
|
DiscussionFactory(subject=reuse)
|
|
71
71
|
|