@@ -63,24 +63,77 @@ public void whenModelNotAvailableReturnFalse() {
6363 }
6464
6565 @ Test
66- public void pullAndDeleteModel () {
67- var model = "all-minilm" ;
68- modelManager .pullModel (model , PullModelStrategy .WHEN_MISSING );
69- var isModelAvailable = modelManager .isModelAvailable (model );
70- assertThat (isModelAvailable ).isTrue ();
71-
72- modelManager .deleteModel (model );
73- isModelAvailable = modelManager .isModelAvailable (model );
74- assertThat (isModelAvailable ).isFalse ();
75-
76- model = "all-minilm:latest" ;
77- modelManager .pullModel (model , PullModelStrategy .WHEN_MISSING );
78- isModelAvailable = modelManager .isModelAvailable (model );
79- assertThat (isModelAvailable ).isTrue ();
66+ public void pullAndDeleteModelFromOllama () {
67+ // Pull model with explicit version.
68+ var modelWithExplicitVersion = "all-minilm:33m" ;
69+ modelManager .deleteModel (modelWithExplicitVersion );
70+ modelManager .pullModel (modelWithExplicitVersion , PullModelStrategy .WHEN_MISSING );
71+ var isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
72+ assertThat (isModelWithExplicitVersionAvailable ).isTrue ();
73+
74+ // Pull same model without version, which should pull the "latest" version.
75+ var modelWithoutVersion = "all-minilm" ;
76+ modelManager .deleteModel (modelWithoutVersion );
77+ var isModelWithoutVersionAvailable = modelManager .isModelAvailable (modelWithoutVersion );
78+ assertThat (isModelWithoutVersionAvailable ).isFalse ();
79+ isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
80+ assertThat (isModelWithExplicitVersionAvailable ).isTrue ();
81+
82+ modelManager .pullModel (modelWithoutVersion , PullModelStrategy .WHEN_MISSING );
83+ isModelWithoutVersionAvailable = modelManager .isModelAvailable (modelWithoutVersion );
84+ assertThat (isModelWithoutVersionAvailable ).isTrue ();
85+
86+ // Pull model with ":latest" suffix, with has the same effect as pulling the model
87+ // without version.
88+ var modelWithLatestVersion = "all-minilm:latest" ;
89+ var isModelWithLatestVersionAvailable = modelManager .isModelAvailable (modelWithLatestVersion );
90+ assertThat (isModelWithLatestVersionAvailable ).isTrue ();
91+
92+ // Final clean-up.
93+ modelManager .deleteModel (modelWithExplicitVersion );
94+ isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
95+ assertThat (isModelWithExplicitVersionAvailable ).isFalse ();
96+
97+ modelManager .deleteModel (modelWithLatestVersion );
98+ isModelWithLatestVersionAvailable = modelManager .isModelAvailable (modelWithLatestVersion );
99+ assertThat (isModelWithLatestVersionAvailable ).isFalse ();
100+ }
80101
81- modelManager .deleteModel (model );
82- isModelAvailable = modelManager .isModelAvailable (model );
83- assertThat (isModelAvailable ).isFalse ();
102+ @ Test
103+ public void pullAndDeleteModelFromHuggingFace () {
104+ // Pull model with explicit version.
105+ var modelWithExplicitVersion = "hf.co/SanctumAI/Llama-3.2-1B-Instruct-GGUF:Q3_K_S" ;
106+ modelManager .deleteModel (modelWithExplicitVersion );
107+ modelManager .pullModel (modelWithExplicitVersion , PullModelStrategy .WHEN_MISSING );
108+ var isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
109+ assertThat (isModelWithExplicitVersionAvailable ).isTrue ();
110+
111+ // Pull same model without version, which should pull the "latest" version.
112+ var modelWithoutVersion = "hf.co/SanctumAI/Llama-3.2-1B-Instruct-GGUF" ;
113+ modelManager .deleteModel (modelWithoutVersion );
114+ var isModelWithoutVersionAvailable = modelManager .isModelAvailable (modelWithoutVersion );
115+ assertThat (isModelWithoutVersionAvailable ).isFalse ();
116+ isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
117+ assertThat (isModelWithExplicitVersionAvailable ).isTrue ();
118+
119+ modelManager .pullModel (modelWithoutVersion , PullModelStrategy .WHEN_MISSING );
120+ isModelWithoutVersionAvailable = modelManager .isModelAvailable (modelWithoutVersion );
121+ assertThat (isModelWithoutVersionAvailable ).isTrue ();
122+
123+ // Pull model with ":latest" suffix, with has the same effect as pulling the model
124+ // without version.
125+ var modelWithLatestVersion = "hf.co/SanctumAI/Llama-3.2-1B-Instruct-GGUF:latest" ;
126+ var isModelWithLatestVersionAvailable = modelManager .isModelAvailable (modelWithLatestVersion );
127+ assertThat (isModelWithLatestVersionAvailable ).isTrue ();
128+
129+ // Final clean-up.
130+ modelManager .deleteModel (modelWithExplicitVersion );
131+ isModelWithExplicitVersionAvailable = modelManager .isModelAvailable (modelWithExplicitVersion );
132+ assertThat (isModelWithExplicitVersionAvailable ).isFalse ();
133+
134+ modelManager .deleteModel (modelWithLatestVersion );
135+ isModelWithLatestVersionAvailable = modelManager .isModelAvailable (modelWithLatestVersion );
136+ assertThat (isModelWithLatestVersionAvailable ).isFalse ();
84137 }
85138
86139 @ Test
0 commit comments