From 237a409ee0bb998a263cbbe8c1df182d481109e5 Mon Sep 17 00:00:00 2001 From: Salad Dais Date: Sun, 23 May 2021 10:39:20 +0000 Subject: [PATCH] Move serialization templates and VFS code to lib.base Not being able to use common enums in code in lib.base was getting to be really annoying. It always should have been in base anyways. --- README.md | 4 +- addon_examples/horror_animator.py | 2 +- .../{proxy => base}/data/LICENSE-artwork.txt | 0 .../lib/{proxy => base}/data/static_data.db2 | Bin .../lib/{proxy => base}/data/static_index.db2 | Bin hippolyzer/lib/{proxy => base}/templates.py | 96 +----------------- hippolyzer/lib/{proxy => base}/vfs.py | 4 +- setup.py | 6 +- tests/{proxy => base}/test_vfs.py | 2 +- 9 files changed, 13 insertions(+), 101 deletions(-) rename hippolyzer/lib/{proxy => base}/data/LICENSE-artwork.txt (100%) rename hippolyzer/lib/{proxy => base}/data/static_data.db2 (100%) rename hippolyzer/lib/{proxy => base}/data/static_index.db2 (100%) rename hippolyzer/lib/{proxy => base}/templates.py (58%) rename hippolyzer/lib/{proxy => base}/vfs.py (93%) rename tests/{proxy => base}/test_vfs.py (87%) diff --git a/README.md b/README.md index 58d7b2a..fdac44c 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,7 @@ If you want to compare against an enum or a flag class in defined in `templates. Decoded messages are displayed in the log pane, clicking one will show the request and response for HTTP messages, and a human-friendly form for UDP messages. Some messages and -fields have [special packers defined](https://github.com/SaladDais/Hippolyzer/blob/master/hippolyzer/lib/proxy/templates.py) +fields have [special packers defined](https://github.com/SaladDais/Hippolyzer/blob/master/hippolyzer/lib/base/templates.py) that will give a more human-readable form of enum or binary fields, with the original form beside or below it. For example, an `AgentUpdate` message may show up in the log pane like: @@ -323,7 +323,7 @@ If you are a viewer developer, please put them in a viewer. [LGPLv3](https://www.gnu.org/licenses/lgpl-3.0.en.html). If you have a good reason why, I might dual license. -This package [includes portions of the Second Life(TM) Viewer Artwork](https://github.com/SaladDais/Hippolyzer/tree/master/hippolyzer/lib/proxy/data), +This package [includes portions of the Second Life(TM) Viewer Artwork](https://github.com/SaladDais/Hippolyzer/tree/master/hippolyzer/lib/base/data), Copyright (C) 2008 Linden Research, Inc. The viewer artwork is licensed under the Creative Commons Attribution-Share Alike 3.0 License. diff --git a/addon_examples/horror_animator.py b/addon_examples/horror_animator.py index 84ff034..85b0fda 100644 --- a/addon_examples/horror_animator.py +++ b/addon_examples/horror_animator.py @@ -16,7 +16,7 @@ from hippolyzer.lib.proxy.http_flow import HippoHTTPFlow from hippolyzer.lib.proxy.message import ProxiedMessage from hippolyzer.lib.proxy.region import ProxiedRegion from hippolyzer.lib.proxy.sessions import Session, SessionManager -from hippolyzer.lib.proxy.vfs import STATIC_VFS +from hippolyzer.lib.base.vfs import STATIC_VFS JOINT_REPLS = { diff --git a/hippolyzer/lib/proxy/data/LICENSE-artwork.txt b/hippolyzer/lib/base/data/LICENSE-artwork.txt similarity index 100% rename from hippolyzer/lib/proxy/data/LICENSE-artwork.txt rename to hippolyzer/lib/base/data/LICENSE-artwork.txt diff --git a/hippolyzer/lib/proxy/data/static_data.db2 b/hippolyzer/lib/base/data/static_data.db2 similarity index 100% rename from hippolyzer/lib/proxy/data/static_data.db2 rename to hippolyzer/lib/base/data/static_data.db2 diff --git a/hippolyzer/lib/proxy/data/static_index.db2 b/hippolyzer/lib/base/data/static_index.db2 similarity index 100% rename from hippolyzer/lib/proxy/data/static_index.db2 rename to hippolyzer/lib/base/data/static_index.db2 diff --git a/hippolyzer/lib/proxy/templates.py b/hippolyzer/lib/base/templates.py similarity index 58% rename from hippolyzer/lib/proxy/templates.py rename to hippolyzer/lib/base/templates.py index 9cf0d82..a4a979c 100644 --- a/hippolyzer/lib/proxy/templates.py +++ b/hippolyzer/lib/base/templates.py @@ -1,3 +1,7 @@ +""" +Serialization templates for structures used in LLUDP and HTTP bodies. +""" + import abc import dataclasses import enum @@ -1621,95 +1625,3 @@ class RetrieveNavMeshSrcSerializer(se.BaseHTTPSerializer): # 15 bit window size, gzip wrapped deser["navmesh_data"] = zlib.decompress(deser["navmesh_data"], wbits=15 | 32) return deser - - -@dataclasses.dataclass -class CAPTemplate: - cap_name: str - method: str - body: Any - query: Set[str] = dataclasses.field(default_factory=set) - path: str = "" - - -# Cap request templates for message builder prefills -CAP_TEMPLATES: List[CAPTemplate] = [ - CAPTemplate(cap_name='Seed', method='POST', body=b'\n\n\n \n \n\n', query=set()), - CAPTemplate(cap_name='SimulatorFeatures', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='EventQueueGet', method='POST', body=b'\n\n\n ack\n \n done\n \n \n\n', query=set()), - CAPTemplate(cap_name='NavMeshGenerationStatus', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='AgentState', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='AgentPreferences', method='POST', body=b'\n\n\n default_object_perm_masks\n \n Everyone\n \n Group\n \n NextOwner\n \n \n \n\n', query=set()), - CAPTemplate(cap_name='ExtEnvironment', method='GET', body=b'', query={'parcelid'}), - CAPTemplate(cap_name='UpdateAgentLanguage', method='POST', body=b'\n\n\n language\n en\n language_is_public\n 1\n \n\n', query=set()), - CAPTemplate(cap_name='DirectDelivery', method='GET', body=b'', query=set(), path="/listings"), - CAPTemplate(cap_name='ViewerStats', method='POST', body=b'\n\n\n AgentPositionSnaps\n \n DisplayNamesEnabled\n \n DisplayNamesShowUsername\n \n MinimalSkin\n \n agent\n \n agents_in_view\n \n fps\n \n language\n \n mem_use\n \n meters_traveled\n \n ping\n \n regions_visited\n \n run_time\n \n sim_fps\n \n start_time\n \n version\n \n \n downloads\n \n mesh_kbytes\n \n object_kbytes\n \n texture_kbytes\n \n world_kbytes\n \n \n misc\n \n Version\n \n Vertex Buffers Enabled\n \n \n session_id\n \n stats\n \n failures\n \n dropped\n \n failed_resends\n \n invalid\n \n missing_updater\n \n off_circuit\n \n resent\n \n send_packet\n \n \n misc\n \n int_1\n \n int_2\n \n string_1\n \n string_2\n \n \n net\n \n in\n \n compressed_packets\n \n kbytes\n \n packets\n \n savings\n \n \n out\n \n compressed_packets\n \n kbytes\n \n packets\n \n savings\n \n \n \n voice\n \n connect_attempts\n \n connect_cycles\n \n connect_time\n \n establish_attempts\n \n establish_time\n \n provision_attempts\n \n provision_time\n \n \n \n system\n \n address_size\n \n cpu\n \n gl\n \n ati_offset_vertical_lines\n \n ati_old_driver\n \n debug_gpu\n \n gl_renderer\n \n gpu_vendor\n \n gpu_version\n \n has_anisotropic\n \n has_arb_env_combine\n \n has_ati_mem_info\n \n has_blend_func_separate\n \n has_compressed_textures\n \n has_cube_map\n \n has_debug_output\n \n has_depth_clamp\n \n has_draw_buffers\n \n has_flush_buffer_range\n \n has_fragment_shader\n \n has_framebuffer_object\n \n has_map_buffer_range\n \n has_mip_map_generation\n \n has_multitexture\n \n has_nvx_mem_info\n \n has_occlusion_query\n \n has_occlusion_query2\n \n has_pbuffer\n \n has_point_parameters\n \n has_requirements\n \n has_separate_specular_color\n \n has_shader_objects\n \n has_srgb_framebuffer\n \n has_srgb_texture\n \n has_sync\n \n has_texture_multisample\n \n has_texture_rectangle\n \n has_texture_srgb_decode\n \n has_timer_query\n \n has_transform_feedback\n \n has_vertex_array_object\n \n has_vertex_buffer_object\n \n has_vertex_shader\n \n is_ati\n \n is_gf2or4mx\n \n is_gf3\n \n is_gf_gfx\n \n is_intel\n \n is_nvidia\n \n max_color_texture_samples\n \n max_depth_texture_samples\n \n max_index_range\n \n max_integer_samples\n \n max_sample_mask_words\n \n max_samples\n \n max_texture_size\n \n max_vertex_range\n \n num_texture_image_units\n \n num_texture_units\n \n opengl_version\n \n vram\n \n \n gpu\n \n gpu_class\n \n gpu_vendor\n \n gpu_version\n \n mac_address\n \n opengl_version\n \n os\n \n ram\n \n serial_number\n \n shader_level\n \n \n \n\n', query=set()), - CAPTemplate(cap_name='GetDisplayNames', method='GET', body=b'', query={'ids'}), - CAPTemplate(cap_name='FetchInventory2', method='POST', body=b'\n\n\n agent_id\n \n cap_name\n \n items\n \n \n item_id\n \n owner_id\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='FetchLib2', method='POST', body=b'\n\n\n agent_id\n \n cap_name\n \n items\n \n \n item_id\n \n owner_id\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='FetchInventoryDescendents2', method='POST', body=b'\n\n\n folders\n \n \n fetch_folders\n \n fetch_items\n \n folder_id\n \n owner_id\n \n sort_order\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='ProvisionVoiceAccountRequest', method='POST', body=b'\n\n\n\n', query=set()), - CAPTemplate(cap_name='AvatarRenderInfo', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='ReadOfflineMsgs', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='MapImageService', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='RenderMaterials', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='AvatarRenderInfo', method='POST', body=b'\n\n\n agents\n \n \n \n tooComplex\n \n weight\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='ParcelVoiceInfoRequest', method='POST', body=b'\n\n\n\n', query=set()), - CAPTemplate(cap_name='ProductInfoRequest', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='ObjectMedia', method='POST', body=b'\n\n\n object_id\n \n verb\n GET\n \n\n', query=set()), - CAPTemplate(cap_name='GetObjectCost', method='POST', body=b'\n\n\n object_ids\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='GetObjectPhysicsData', method='POST', body=b'\n\n\n object_ids\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='RenderMaterials', method='PUT', body=b'\n\n\n Zipped\n \n \n\n', query=set()), - CAPTemplate(cap_name='RenderMaterials', method='POST', body=b'\n\n\n Zipped\n \n \n\n', query=set()), - CAPTemplate(cap_name='GetExperienceInfo', method='GET', body=b'', query={'public_id', 'page_size'}, path="/id/"), - CAPTemplate(cap_name='LSLSyntax', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='GetCreatorExperiences', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='GetMetadata', method='POST', body=b'\n\n\n fields\n \n experience\n \n item-id\n \n object-id\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateScriptTask', method='POST', body=b'\n\n\n experience\n \n is_script_running\n 1\n item_id\n \n target\n mono\n task_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='EstateAccess', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='RegionExperiences', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='SimConsoleAsync', method='POST', body=b'\n\n\n\n', query=set()), - CAPTemplate(cap_name='FindExperienceByName', method='GET', body=b'', query={'query', 'page', 'page_size'}), - CAPTemplate(cap_name='ViewerMetrics', method='POST', body=b'\n\n\n agent_id\n \n break\n \n duration\n \n initial\n \n message\n \n nearby\n \n cloud\n \n downloading\n \n full\n \n gray\n \n \n rez_status\n \n sequence\n \n session_id\n \n timers\n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n central_bake_version\n \n completed\n \n grid_x\n \n grid_y\n \n is_self\n \n is_using_server_bakes\n \n stats\n \n count\n \n max\n \n mean\n \n min\n \n std_dev\n \n \n timer_name\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='InventoryAPIv3', method='PATCH', body=b'\n\n\n name\n \n \n\n', query={'tid'}, path="/item/SOME_ID"), - CAPTemplate(cap_name='RemoteParcelRequest', method='POST', body=b'\n\n\n location\n \n \n \n \n \n region_handle\n \n region_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='ParcelPropertiesUpdate', method='POST', body=b'\n\n \n local_id\n \n any_av_sounds\n true\n auth_buyer_id\n \n auto_scale\n 0\n category\n 0\n description\n \n flags\n AAAAAQ==\n group_av_sounds\n true\n group_id\n \n landing_type\n 2\n media_allow_navigate\n 1\n media_current_url\n \n media_desc\n \n media_height\n 0\n media_id\n \n media_loop\n 0\n media_prevent_camera_zoom\n 0\n media_type\n none/none\n media_url\n \n media_url_timeout\n 0.0\n media_width\n 0\n music_url\n \n name\n \n obscure_media\n false\n obscure_music\n false\n parcel_flags\n fiQASw==\n pass_hours\n 1.0\n pass_price\n 10\n sale_price\n 10000\n see_avs\n true\n snapshot_id\n \n user_location\n \n 0.0\n 0.0\n 0.0\n \n user_look_at\n \n 0.0\n 0.0\n 0.0\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateScriptAgent', method='POST', body=b'\n\n\n item_id\n \n target\n mono\n \n\n', query=set()), - CAPTemplate(cap_name='NewFileAgentInventory', method='POST', body=b'\n\n\n asset_type\n \n description\n \n everyone_mask\n \n folder_id\n \n group_mask\n \n inventory_type\n \n name\n \n next_owner_mask\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateNotecardAgentInventory', method='POST', body=b'\n\n\n item_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateNotecardTaskInventory', method='POST', body=b'\n\n\n item_id\n \n task_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateGestureAgentInventory', method='POST', body=b'\n\n\n item_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateGestureTaskInventory', method='POST', body=b'\n\n\n item_id\n \n task_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='MeshUploadFlag', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='UntrustedSimulatorMessage', method='POST', body=b'\n\n\n message\n ChatFromViewer\n body\n \n AgentData\n \n \n AgentID\n \n SessionID\n \n \n \n ChatData\n \n \n Channel\n 0\n Message\n test \n Type\n 1\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='UpdateAvatarAppearance', method='POST', body=b'\n\n\n cof_version\n \n \n\n', query=set()), - CAPTemplate(cap_name='ServerReleaseNotes', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='UserInfo', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='SendPostcard', method='POST', body=b'\n\n\n msg\n \n name\n \n pos-global\n \n \n \n \n \n subject\n \n to\n \n \n\n', query=set()), - CAPTemplate(cap_name='GetAdminExperiences', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='GetExperiences', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='AgentExperiences', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='ExperiencePreferences', method='GET', body=b'', query={'SOME_ID'}), - CAPTemplate(cap_name='IsExperienceAdmin', method='GET', body=b'', query={'experience_id'}), - CAPTemplate(cap_name='UpdateExperience', method='POST', body=b'\n\n\n description\n \n extended_metadata\n \n group_id\n \n slurl\n \n \n\n', query=set()), - CAPTemplate(cap_name='AttachmentResources', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='DispatchRegionInfo', method='POST', body=b'\n\n\n agent_limit\n \n allow_damage\n \n allow_land_resell\n \n allow_parcel_changes\n \n block_fly\n \n block_fly_over\n \n block_parcel_search\n \n block_terraform\n \n prim_bonus\n \n restrict_pushobject\n \n sim_access\n \n \n\n', query=set()), - CAPTemplate(cap_name='AvatarPickerSearch', method='GET', body=b'', query={'names', 'page_size'}), - CAPTemplate(cap_name='LandResources', method='POST', body=b'\n\n\n parcel_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='ResourceCostSelected', method='POST', body=b'\n\n\n selected_roots\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='GroupMemberData', method='POST', body=b'\n\n\n group_id\n \n \n\n', query=set()), - CAPTemplate(cap_name='GroupExperiences', method='GET', body=b'', query={'SOME_ID'}), - CAPTemplate(cap_name='CopyInventoryFromNotecard', method='POST', body=b'\n\n\n callback-id\n \n folder-id\n \n item-id\n \n notecard-id\n \n object-id\n \n \n\n', query=set()), - CAPTemplate(cap_name='HomeLocation', method='POST', body=b'\n\n\n HomeLocation\n \n LocationId\n 1\n LocationLookAt\n \n X\n \n Y\n \n Z\n \n \n LocationPos\n \n X\n \n Y\n \n Z\n \n \n \n \n\n', query=set()), - CAPTemplate(cap_name='CharacterProperties', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='ObjectNavMeshProperties', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='TerrainNavMeshProperties', method='GET', body=b'', query=set()), - CAPTemplate(cap_name='ObjectNavMeshProperties', method='PUT', body=b'\n\n\n \n \n A\n \n B\n \n C\n \n D\n \n navmesh_category\n \n phantom\n \n \n \n\n', query=set()), - CAPTemplate(cap_name='RetrieveNavMeshSrc', method='POST', body=b'\n\n\n\n', query=set()), - CAPTemplate(cap_name='MapLayer', method='POST', body=b'\n\n\n\n', query=set()), - CAPTemplate(cap_name='GroupAPIv1', method='GET', body=b'', query={'group_id'}), - CAPTemplate(cap_name='ChatSessionRequest', method='POST', body=b'\n\n\n method\n \n session-id\n \n \n\n', query=set()), - CAPTemplate(cap_name='ViewerBenefits', method='GET', body=b'', query=set(), path=''), - CAPTemplate(cap_name='SetDisplayName', method='POST', body=b'\n\n\n display_name\n \n OLD_DISPLAY_NAME\n NEW_DISPLAY_NAME\n \n \n\n', query=set(), path=''), - CAPTemplate(cap_name='ObjectMediaNavigate', method='POST', body=b'\n\n\n current_url\n \n object_id\n \n texture_index\n \n \n\n', query=set(), path=''), -] diff --git a/hippolyzer/lib/proxy/vfs.py b/hippolyzer/lib/base/vfs.py similarity index 93% rename from hippolyzer/lib/proxy/vfs.py rename to hippolyzer/lib/base/vfs.py index 3354936..f37e360 100644 --- a/hippolyzer/lib/proxy/vfs.py +++ b/hippolyzer/lib/base/vfs.py @@ -4,7 +4,7 @@ from typing import * import hippolyzer.lib.base.serialization as se from hippolyzer.lib.base.datatypes import UUID from hippolyzer.lib.base.helpers import get_resource_filename -from hippolyzer.lib.proxy.templates import AssetType +from hippolyzer.lib.base.templates import AssetType @dataclasses.dataclass @@ -63,5 +63,5 @@ class VFS: return self._data_fh.read(block.size) -_static_path = get_resource_filename("lib/proxy/data/static_index.db2") +_static_path = get_resource_filename("lib/base/data/static_index.db2") STATIC_VFS = VFS(_static_path) diff --git a/setup.py b/setup.py index 9a28f43..c05a811 100644 --- a/setup.py +++ b/setup.py @@ -63,9 +63,9 @@ setup( 'lib/base/message/data/message_template.msg', 'lib/base/message/data/message.xml', 'lib/base/network/data/ca-bundle.crt', - 'lib/proxy/data/static_data.db2', - 'lib/proxy/data/static_index.db2', - 'lib/proxy/data/LICENSE-artwork.txt', + 'lib/base/data/static_data.db2', + 'lib/base/data/static_index.db2', + 'lib/base/data/LICENSE-artwork.txt', ], }, entry_points={ diff --git a/tests/proxy/test_vfs.py b/tests/base/test_vfs.py similarity index 87% rename from tests/proxy/test_vfs.py rename to tests/base/test_vfs.py index 7fb2d47..615a736 100644 --- a/tests/proxy/test_vfs.py +++ b/tests/base/test_vfs.py @@ -1,7 +1,7 @@ import unittest from hippolyzer.lib.base.datatypes import UUID -from hippolyzer.lib.proxy.vfs import STATIC_VFS +from hippolyzer.lib.base.vfs import STATIC_VFS class StaticVFSTest(unittest.TestCase):