mirror of
https://github.com/modelscope/modelscope.git
synced 2025-12-17 00:37:43 +01:00
61 lines
2.2 KiB
Python
61 lines
2.2 KiB
Python
|
|
# Copyright (c) Alibaba, Inc. and its affiliates.
|
||
|
|
import os
|
||
|
|
import unittest
|
||
|
|
|
||
|
|
from requests import HTTPError
|
||
|
|
|
||
|
|
from modelscope import snapshot_download
|
||
|
|
from modelscope.hub.constants import MODELSCOPE_PREFER_AI_SITE
|
||
|
|
|
||
|
|
|
||
|
|
class HubAiSiteTest(unittest.TestCase):
|
||
|
|
|
||
|
|
def setUp(self):
|
||
|
|
pass
|
||
|
|
|
||
|
|
# test download from an ai-site only model, it should
|
||
|
|
# work as expected since we shall fall back to ai-site
|
||
|
|
# when the model is not found on cn-site.
|
||
|
|
def test_default_download_from_ai_site(self):
|
||
|
|
model_id = 'ModelScope_Developer/ai_only'
|
||
|
|
model_dir = snapshot_download(model_id)
|
||
|
|
contents = os.listdir(model_dir)
|
||
|
|
assert len(contents) > 0
|
||
|
|
|
||
|
|
# test download from a cn-site only model, it should
|
||
|
|
# work as expected as it is found directly on cn-site.
|
||
|
|
def test_default_download_from_cn_site(self):
|
||
|
|
model_id = 'ModelScope_Developer/cn_only'
|
||
|
|
model_dir = snapshot_download(model_id)
|
||
|
|
contents = os.listdir(model_dir)
|
||
|
|
assert len(contents) > 0
|
||
|
|
|
||
|
|
# test download a model that exists on both cn and ai site
|
||
|
|
# when prefer-ai-site is set, we should found the version from
|
||
|
|
# on ai-site, not cn-site
|
||
|
|
def test_prefer_ai_site_and_download_from_ai_site(self):
|
||
|
|
os.environ[MODELSCOPE_PREFER_AI_SITE] = 'True'
|
||
|
|
model_id = 'ModelScope_Developer/same_name'
|
||
|
|
model_dir = snapshot_download(model_id)
|
||
|
|
cn_site_only_file = os.path.join(model_dir, 'on_ai_site')
|
||
|
|
assert os.path.exists(cn_site_only_file)
|
||
|
|
|
||
|
|
# test download a model that exists on both cn and ai site
|
||
|
|
# when prefer-ai-site is NOT set, we should found the version from
|
||
|
|
# on cn-site, not ai-site
|
||
|
|
def test_prefer_cn_site_and_download_from_cn_site(self):
|
||
|
|
os.environ[MODELSCOPE_PREFER_AI_SITE] = 'False'
|
||
|
|
model_id = 'ModelScope_Developer/same_name'
|
||
|
|
model_dir = snapshot_download(model_id)
|
||
|
|
cn_site_only_file = os.path.join(model_dir, 'on_cn_site')
|
||
|
|
assert os.path.exists(cn_site_only_file)
|
||
|
|
|
||
|
|
def test_download_non_exist_model(self):
|
||
|
|
with self.assertRaises(HTTPError):
|
||
|
|
model_id = 'ModelScope_Developer/not_exist_model'
|
||
|
|
snapshot_download(model_id)
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == '__main__':
|
||
|
|
unittest.main()
|