11import dataclasses
2- import enum
32import typing
43import unittest
54from http import HTTPMethod
65from unittest .mock import Mock
76
87from addon_toolkit import (
8+ AddonCapabilities ,
99 AddonImp ,
1010 AddonOperationDeclaration ,
1111 AddonOperationImp ,
1919
2020class TestAddonProtocol (unittest .TestCase ):
2121 # the basics of an addon protocol
22- class _MyCapability (enum .Enum ):
23- GET_IT = "get-it"
24- PUT_IT = "put-it"
25- UNUSED = "unused" # for testing when a capability has no operations
2622
2723 ###
2824 # shared test env (on `self`)
@@ -49,12 +45,12 @@ class _MyCustomOperationResult:
4945 class _MyProtocol (typing .Protocol ):
5046 """this _MyProtocol docstring should find its way to browsable docs somewhere"""
5147
52- @redirect_operation (capability = cls . _MyCapability . GET_IT )
48+ @redirect_operation (capability = AddonCapabilities . ACCESS )
5349 def url_for_get (self , checksum_iri : str ) -> RedirectResult :
5450 """this url_for_get docstring should find its way to docs"""
5551 ...
5652
57- @immediate_operation (capability = cls . _MyCapability . GET_IT )
53+ @immediate_operation (capability = AddonCapabilities . ACCESS )
5854 async def query_relations (
5955 self ,
6056 checksum_iri : str ,
@@ -63,7 +59,7 @@ async def query_relations(
6359 """this query_relations docstring should find its way to docs"""
6460 ...
6561
66- @redirect_operation (capability = cls . _MyCapability . PUT_IT )
62+ @redirect_operation (capability = AddonCapabilities . UPDATE )
6763 def url_for_put (self , checksum_iri : str ) -> RedirectResult :
6864 """this url_for_put docstring should find its way to docs"""
6965 ...
@@ -93,17 +89,17 @@ def url_for_put(self, checksum_iri: str) -> RedirectResult:
9389 # shared operations
9490 cls ._expected_get_op = AddonOperationDeclaration (
9591 operation_type = AddonOperationType .REDIRECT ,
96- capability = cls . _MyCapability . GET_IT ,
92+ capability = AddonCapabilities . ACCESS ,
9793 operation_fn = _MyProtocol .url_for_get ,
9894 )
9995 cls ._expected_put_op = AddonOperationDeclaration (
10096 operation_type = AddonOperationType .REDIRECT ,
101- capability = cls . _MyCapability . PUT_IT ,
97+ capability = AddonCapabilities . UPDATE ,
10298 operation_fn = _MyProtocol .url_for_put ,
10399 )
104100 cls ._expected_query_op = AddonOperationDeclaration (
105101 operation_type = AddonOperationType .IMMEDIATE ,
106- capability = cls . _MyCapability . GET_IT ,
102+ capability = AddonCapabilities . ACCESS ,
107103 operation_fn = _MyProtocol .query_relations ,
108104 )
109105 cls ._my_imp = AddonImp (
@@ -131,27 +127,19 @@ def test_get_operations(self) -> None:
131127 self .assertEqual (
132128 set (
133129 _protocol_dec .get_operation_declarations (
134- capabilities = [self . _MyCapability . GET_IT ]
130+ capabilities = [AddonCapabilities . ACCESS ]
135131 )
136132 ),
137133 {self ._expected_get_op , self ._expected_query_op },
138134 )
139135 self .assertEqual (
140136 set (
141137 _protocol_dec .get_operation_declarations (
142- capabilities = [self . _MyCapability . PUT_IT ]
138+ capabilities = [AddonCapabilities . UPDATE ]
143139 )
144140 ),
145141 {self ._expected_put_op },
146142 )
147- self .assertEqual (
148- set (
149- _protocol_dec .get_operation_declarations (
150- capabilities = [self ._MyCapability .UNUSED ]
151- )
152- ),
153- set (),
154- )
155143
156144 def test_get_operation_imps (self ) -> None :
157145 self .assertEqual (
@@ -160,28 +148,16 @@ def test_get_operation_imps(self) -> None:
160148 )
161149 self .assertEqual (
162150 set (
163- self ._my_imp .get_operation_imps (
164- capabilities = [self ._MyCapability .GET_IT ]
165- )
151+ self ._my_imp .get_operation_imps (capabilities = [AddonCapabilities .ACCESS ])
166152 ),
167153 {self ._expected_get_imp },
168154 )
169155 self .assertEqual (
170156 set (
171- self ._my_imp .get_operation_imps (
172- capabilities = [self ._MyCapability .PUT_IT ]
173- )
157+ self ._my_imp .get_operation_imps (capabilities = [AddonCapabilities .UPDATE ])
174158 ),
175159 {self ._expected_put_imp },
176160 )
177- self .assertEqual (
178- set (
179- self ._my_imp .get_operation_imps (
180- capabilities = [self ._MyCapability .UNUSED ]
181- )
182- ),
183- set (),
184- )
185161
186162 def test_operation_imp_by_name (self ) -> None :
187163 self .assertEqual (
0 commit comments