From 260b3b6e190f1273e5acea97f4a51e28f277b0f3 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Sun, 18 Sep 2016 14:34:41 +0100 Subject: [PATCH] Update LOOT API to 6809c39 --- CMakeLists.txt | 6 ++-- docs/usage.rst | 16 ++--------- src/test.py | 76 +++++++++++++++++++++++++++++++------------------- 3 files changed, 52 insertions(+), 46 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2cef2b9..9f4b7ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,9 +28,9 @@ add_subdirectory(${PYBIND11_EXTRACTED_PATH}) # LOOT API ####################################### -set(LOOT_API_URL "https://bintray.com/wrinklyninja/loot/download_file?file_path=loot-api_0.9.2-49-gdc3a93e_dev.7z") -set(LOOT_API_DOWNLOAD_PATH "${EXTERNAL_PROJECTS_PATH}/loot-api_0.9.2-49-gdc3a93e_dev.7z") -set(LOOT_API_EXTRACTED_PATH "${EXTERNAL_PROJECTS_PATH}/loot-api_0.9.2-49-gdc3a93e_dev") +set(LOOT_API_URL "https://bintray.com/wrinklyninja/loot/download_file?file_path=loot-api_0.9.2-49-g6809c39_dev.7z") +set(LOOT_API_DOWNLOAD_PATH "${EXTERNAL_PROJECTS_PATH}/loot-api_0.9.2-49-g6809c39_dev.7z") +set(LOOT_API_EXTRACTED_PATH "${EXTERNAL_PROJECTS_PATH}/loot-api_0.9.2-49-g6809c39_dev") if (NOT EXISTS ${LOOT_API_DOWNLOAD_PATH}) file(DOWNLOAD ${LOOT_API_URL} ${LOOT_API_DOWNLOAD_PATH}) diff --git a/docs/usage.rst b/docs/usage.rst index 64f35d7..bcca94c 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -28,23 +28,11 @@ To check if the module loaded is compatible with the version of the API that you developed against:: >>> import loot_api - >>> loot_api.is_compatible(0,9,0) + >>> loot_api.is_compatible(0,10,0) True - >>> loot_api.is_compatible(0,8,0) + >>> loot_api.is_compatible(0,9,0) False -**Note:** LOOT's development cycle increments its version number just before -releases, so snapshot builds created from commits between releases may use the -last release's version number, and so appear compatible, but contain breaking -changes that aren't yet reflected by the version numbering. - -The module is currently built against revision `dc3a93e`_ -of the API, which is post-0.9.2 and pre-0.10.0, but uses the v0.10 metadata -syntax (as specified at that revision, in case there are further changes before -the v0.10 release). - -.. _dc3a93e: https://github.com/loot/loot/tree/dc3a93ecf331465b17a28ac39e6c17370438331b - Getting a Plugin's Bash Tag Suggestions *************************************** diff --git a/src/test.py b/src/test.py index 43d0c16..23634b0 100644 --- a/src/test.py +++ b/src/test.py @@ -1,34 +1,52 @@ #!/usr/bin/env python import cProfile +import os.path +import shutil import unittest from loot_api import Version from loot_api import GameType +from loot_api import LanguageCode from loot_api import Message from loot_api import MessageType from loot_api import create_database from loot_api import is_compatible -class TestLootApi(unittest.TestCase): +class GameFixture(unittest.TestCase): + game_path = os.path.join(u'.', u'Oblivion') + + def setUp(self): + data_path = os.path.join(self.game_path, 'Data') + master_file = os.path.join(data_path, 'Oblivion.esm') + + os.makedirs(data_path) + open(master_file, 'a').close() + + def tearDown(self): + shutil.rmtree(self.game_path) + +class TestLootApi(GameFixture): def test_is_compatible(self): - self.assertFalse(is_compatible(0, 10, 0)) - self.assertTrue(is_compatible(0, 9, 2)) + self.assertFalse(is_compatible(0, 9, 0)) + self.assertTrue(is_compatible(0, 10, 0)) def test_version(self): self.assertEqual(Version.major, 0) - self.assertEqual(Version.minor, 9) - self.assertEqual(Version.patch, 2) + self.assertEqual(Version.minor, 10) + self.assertEqual(Version.patch, 0) self.assertNotEqual(Version.revision, u'') def test_create_db(self): - db = create_database(GameType.tes4, u'', u'') + db = create_database(GameType.tes4, self.game_path, u'') self.assertNotEqual(db, None) -class TestDatabaseInterface(unittest.TestCase): +class TestDatabaseInterface(GameFixture): masterlist_path = u'masterlist.yaml' def setUp(self): - self.db = create_database(GameType.tes4, u'', u'') + super(TestDatabaseInterface, self).setUp() + + self.db = create_database(GameType.tes4, self.game_path, u'') def test_load_lists(self): self.db.load_lists(self.masterlist_path, u'') @@ -40,26 +58,26 @@ class TestDatabaseInterface(unittest.TestCase): self.assertNotEqual(tags, None) self.assertFalse(tags.userlist_modified) self.assertEqual(tags.added, set([ - u'Actors.ACBS', - u'Actors.AIData', - u'Actors.AIPackages', - u'Actors.CombatStyle', - u'Actors.DeathItem', - u'Actors.Stats', - u'C.Climate', - u'C.Light', - u'C.Music', - u'C.Name', - u'C.Owner', - u'Creatures.Blood', - u'Delev', - u'Factions', - u'Invent', - u'Names', - u'NPC.Class', - u'Relations', - u'Relev', - u'Scripts', + u'Actors.ACBS', + u'Actors.AIData', + u'Actors.AIPackages', + u'Actors.CombatStyle', + u'Actors.DeathItem', + u'Actors.Stats', + u'C.Climate', + u'C.Light', + u'C.Music', + u'C.Name', + u'C.Owner', + u'Creatures.Blood', + u'Delev', + u'Factions', + u'Invent', + u'Names', + u'NPC.Class', + u'Relations', + u'Relev', + u'Scripts', u'Stats' ])) self.assertEqual(tags.removed, set([u'C.Water'])) @@ -75,7 +93,7 @@ class TestDatabaseInterface(unittest.TestCase): def test_get_plugin_messages(self): self.db.load_lists(self.masterlist_path, u'') - messages = self.db.get_plugin_messages(u'Oblivion.esm') + messages = self.db.get_plugin_messages(u'Oblivion.esm', LanguageCode.english) self.assertEqual(len(messages), 1) self.assertEqual(messages[0].type, MessageType.error)