Commit Graph

41 Commits

Author SHA1 Message Date
gandalf3
f20264c963 Cleanup: Changes suggested by @sybren 2017-07-05 18:40:32 -07:00
gandalf3
1cefb4eab6 First test for conditional requests
Involves lots of mocking. Part of the issue is that there is no way (?) to
know where repo.json is stored when blender isn't running the show.
2017-07-05 02:45:30 -07:00
gandalf3
3847cc877f Improve make_repo.py
This cleans up make_repo.py a bit, using file extensions to determine
file type.

This also loosens the testing repo generation, as the existing
test required matching a predifed expected output which had to be
updated on every change (essentially making it a moot test, as the
reference output was obtained from the functions output).
The new test just checks if the output has the same number of packages
as the input dir has addons.

Tips on how best to test these sorts of "higher level" functions (if at
all) would be welcome :)
2017-07-04 23:56:19 -07:00
gandalf3
12533268fc Remove old commented code 2017-07-04 03:06:34 -07:00
gandalf3
7ce5bd2010 Add UIlist for repositories (and make reloadable) 2017-07-04 02:11:03 -07:00
gandalf3
e509559c22 Terminology: Update -> Upgrade, Fetch -> Refresh 2017-07-02 18:47:15 -07:00
gandalf3
5ad139ac13 Quick hack to handle case of non-text, non-python files 2017-07-02 18:39:58 -07:00
gandalf3
9f0ff11421 Get all tests for make_repo.py passing 2017-07-02 16:55:17 -07:00
gandalf3
8baacc366b Split repo generation functionality out of blenderpack.py
Moved repo.json generation to make_repo.py
Package/addon parsing is getting a bit messy, this can be
cleaned up when we have a clearer idea of what a package is.

For now just make it work.
2017-07-02 15:15:48 -07:00
gandalf3
6a538a4264 Repo generation: add more testcases 2017-06-30 20:10:33 -07:00
gandalf3
354523f26b Write repo.json to current working directory 2017-06-30 15:08:07 -07:00
gandalf3
89ca306299 Cleanup: Remove commented code, use logging 2017-06-29 21:44:18 -07:00
gandalf3
1418c45a8a GUI: demonstrate that blender has recieved results of the request 2017-06-29 21:11:43 -07:00
gandalf3
0b506d8759 Save repo.json after we've downloaded it 2017-06-29 19:55:35 -07:00
gandalf3
9dfd58671e Asynchronous IPC: Initial implementation
This commit adds a mixin which sets up a modal operator which:
* Starts a subprocess
* Polls for messages from that subprocesses
2017-06-29 18:16:44 -07:00
gandalf3
2268925733 Testing: use try/finally to ensure repo.json is always cleaned up 2017-06-29 02:18:52 -07:00
gandalf3
5a0aba8a56 Cleanup: take advantage of pathlib
* Use / syntax for concating pathlib paths in tests
* Use .name for getting last component of pathlib path
2017-06-29 02:11:43 -07:00
gandalf3
172353bbbb A bit of documentation 2017-06-29 01:11:12 -07:00
2debd7fa98 Add test runner script 2017-06-23 20:05:55 -07:00
4b7feeebb1 Switch to pathlib 2017-06-23 20:05:10 -07:00
8d8c3b84fd Repo generation: log and keep going on error
* Delete old report() functions, use logging instead
* Skip addons which have problems (but give a warning)
2017-06-23 19:10:26 -07:00
d06af2fed0 Clean up tests
No need to test on complete addons.
This commit adds a few test cases and some automated test
generation.
2017-06-23 18:53:07 -07:00
1ff2b055a6 Make 'version' required 2017-06-23 13:23:11 -07:00
5a9a3db016 Initial implementation of repo generation tool 2017-06-22 20:04:15 -07:00
020ce924c6 Test for an invalid case 2017-06-22 18:00:29 -07:00
20683af72c More unit tests
Copy in a multifile addon for testing, also fix a typo in blenderpack.py
2017-06-22 17:49:56 -07:00
44e0a904a4 Pull some code in from 2016 project; add tests 2017-06-22 17:41:41 -07:00
15a59cb867 initial (2017) commit 2017-06-22 01:43:08 -07:00
9e2b2c1794 revert master to blank slate 2017-06-21 21:52:21 -07:00
48e4d3f2d9 Cleanup: Using set for faster performance. 2016-06-26 22:42:07 -05:00
1cce8cda81 Documentation: Documenting every class and function.
Added a docstring to every class and function, documenting arguments and return values. Also made a couple cleanup changes. Next cleanup-related change will be moving from urllib.requests to the requests module.
2016-06-26 22:00:03 -05:00
f6897e6401 Async support: downloading, json parsing, and add-on install
Downloading, parsing index.json, and installing add-ons all now are handled asynchronously using the asyncio module. These operations will no longer block Blender, allowing them to run in the background.
2016-06-26 17:42:21 -05:00
b2c34a1a7e Adding support for download and install of .zip addons
Minor UI alteration, and some small changes based on Sybren's feedback
2016-06-24 13:54:27 -05:00
8c87eeee85 Updating generate-json.py and index.json
- Updated generate-json.py to support addons_contrib (previously ran into an unhandled UnicodeDecodeError).
- 'download_url' key now works; used with http://localhost:8000 for now.
- index.json generated with updated generate-json.py, now contains addons and addons_contrib.
2016-06-24 13:00:04 -05:00
576d04ee65 Package Manager add-on now functional, with limitations
- For now, add-ons are downloaded from http://localhost:8000/.
- Add-ons on the index.json (from	blender.org gitweb) are only displayed if they are not installed locally, or installed in the USER path.
- Only .py add-ons are supported for now, but .zip add-ons will be supported next commit.
2016-06-24 09:18:09 -05:00
52365f59ae Fix: Renaming add-on directory and updating index.json
- Add-on directory name was not a proper identifier before.
- index.json was formatted incorrectly (missing commas); new version is generated with updated generate-json.py (which seems to fail for addons_contrib at the moment), and contains data for add-ons in addons repo.
2016-06-22 21:16:30 -05:00
5548c26af4 Strip extension from addon IDs. 2016-06-22 00:15:28 +02:00
1db0d0dec4 Using 'ast' and 'json' modules to parse & write addon data. 2016-06-22 00:10:51 +02:00
d61fe5742d Added .gitignore 2016-06-22 00:09:53 +02:00
289f523397 Committing first version of package manager add-on, index.json, and Python script to generate index.json file. 2016-06-18 18:14:02 -05:00
2291f3c109 Initial commit 2016-06-09 16:46:35 +02:00