1111
1212@pytest .fixture
1313def spacy_model ():
14+ < << << << HEAD
1415 @spacy .language .Language .component ("animals" )
1516 def animal_component_function (doc ):
1617 matches = matcher (doc ) # noqa
@@ -33,21 +34,39 @@ def animal_component_function(doc):
3334@pytest .fixture
3435def vetiver_client (spacy_model ): # With check_prototype=True
3536 app = vetiver .VetiverAPI (spacy_model , check_prototype = True )
37+ == == == =
38+
39+ nlp = spacy .blank ("en" )
40+ sentencizer = nlp .add_pipe ("sentencizer" )
41+
42+ return vetiver .VetiverModel (sentencizer , "sentencizer" )
43+
44+
45+ @pytest .fixture
46+ def vetiver_client (spacy_model ): # With check_ptype=True
47+ app = vetiver .VetiverAPI (spacy_model , check_ptype = True )
48+ > >> >> >> b600e38 (testing spacy )
3649 app .app .root_path = "/predict"
3750 client = TestClient (app .app )
3851
3952 return client
4053
4154
4255@pytest .fixture
56+ < << << << HEAD
4357def vetiver_client_check_ptype_false (spacy_model ): # With check_prototype=False
4458 app = vetiver .VetiverAPI (spacy_model , check_prototype = True )
59+ == == == =
60+ def vetiver_client_check_ptype_false (spacy_model ): # With check_ptype=True
61+ app = vetiver .VetiverAPI (spacy_model , check_ptype = False )
62+ > >> >> >> b600e38 (testing spacy )
4563 app .app .root_path = "/predict"
4664 client = TestClient (app .app )
4765
4866 return client
4967
5068
69+ < << << << HEAD
5170def test_vetiver_post (vetiver_client ):
5271 df = pd .DataFrame ({"text" : ["one" , "my turtle is smarter than my dog" ]})
5372
@@ -92,3 +111,51 @@ def test_vetiver_post(vetiver_client):
92111# spacy.Language,
93112# )
94113# board.pin_delete("animals")
114+ == == == =
115+ def test_vetiver_build (vetiver_client ):
116+ nlp = spacy .blank ("en" )
117+ words = ["This" , "is" , "a" , "new" , "Sentence" , "." ]
118+ doc = spacy .tokens .Doc (nlp .vocab , words = words )
119+
120+ response = vetiver .predict (endpoint = vetiver_client , data = doc .to_json ())
121+
122+ assert response == [[True , False , False , False , False , False ]]
123+
124+
125+ def test_batch (vetiver_client ):
126+ nlp = spacy .blank ("en" )
127+ words1 = ["This" , "is" , "a" , "new" , "Sentence" , "." ]
128+ doc1 = spacy .tokens .Doc (nlp .vocab , words = words1 )
129+ words2 = ["Another" , "one" , "." ]
130+ doc2 = spacy .tokens .Doc (nlp .vocab , words = words2 )
131+
132+ response = vetiver .predict (endpoint = vetiver_client , data = [doc1 , doc2 ])
133+
134+ assert response == [[True , False , False , False , False , False ], [True , False , False ]]
135+
136+
137+ def test_no_ptype (vetiver_client_check_ptype_false ):
138+ nlp = spacy .blank ("en" )
139+ words1 = ["This" , "is" , "a" , "new" , "Sentence" , "." ]
140+ doc1 = spacy .tokens .Doc (nlp .vocab , words = words1 )
141+ words2 = ["Another" , "one" , "." ]
142+ doc2 = spacy .tokens .Doc (nlp .vocab , words = words2 )
143+
144+ response = vetiver .predict (
145+ endpoint = vetiver_client_check_ptype_false , data = [doc1 , doc2 ]
146+ )
147+
148+ assert response == [[True , False , False , False , False , False ], [True , False , False ]]
149+
150+
151+ def test_serialize (spacy_model ):
152+ import pins
153+
154+ board = pins .board_temp (allow_pickle_read = True )
155+ vetiver .vetiver_pin_write (board = board , model = spacy_model )
156+ assert isinstance (
157+ board .pin_read ("sentencizer" ),
158+ spacy .pipeline .sentencizer .Sentencizer ,
159+ )
160+ board .pin_delete ("sentencizer" )
161+ > >> >> >> b600e38 (testing spacy )
0 commit comments