You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_dataset.py 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. from common import create_dataset, list_dataset, rm_dataset, update_dataset, DATASET_NAME_LIMIT
  2. import re
  3. import random
  4. import string
  5. def test_dataset(get_auth):
  6. # create dataset
  7. res = create_dataset(get_auth, "test_create_dataset")
  8. assert res.get("code") == 0, f"{res.get('message')}"
  9. # list dataset
  10. page_number = 1
  11. dataset_list = []
  12. while True:
  13. res = list_dataset(get_auth, page_number)
  14. data = res.get("data").get("kbs")
  15. for item in data:
  16. dataset_id = item.get("id")
  17. dataset_list.append(dataset_id)
  18. if len(dataset_list) < page_number * 150:
  19. break
  20. page_number += 1
  21. print(f"found {len(dataset_list)} datasets")
  22. # delete dataset
  23. for dataset_id in dataset_list:
  24. res = rm_dataset(get_auth, dataset_id)
  25. assert res.get("code") == 0, f"{res.get('message')}"
  26. print(f"{len(dataset_list)} datasets are deleted")
  27. def test_dataset_1k_dataset(get_auth):
  28. # create dataset
  29. for i in range(1000):
  30. res = create_dataset(get_auth, f"test_create_dataset_{i}")
  31. assert res.get("code") == 0, f"{res.get('message')}"
  32. # list dataset
  33. page_number = 1
  34. dataset_list = []
  35. while True:
  36. res = list_dataset(get_auth, page_number)
  37. data = res.get("data").get("kbs")
  38. for item in data:
  39. dataset_id = item.get("id")
  40. dataset_list.append(dataset_id)
  41. if len(dataset_list) < page_number * 150:
  42. break
  43. page_number += 1
  44. print(f"found {len(dataset_list)} datasets")
  45. # delete dataset
  46. for dataset_id in dataset_list:
  47. res = rm_dataset(get_auth, dataset_id)
  48. assert res.get("code") == 0, f"{res.get('message')}"
  49. print(f"{len(dataset_list)} datasets are deleted")
  50. def test_duplicated_name_dataset(get_auth):
  51. # create dataset
  52. for i in range(20):
  53. res = create_dataset(get_auth, "test_create_dataset")
  54. assert res.get("code") == 0, f"{res.get('message')}"
  55. # list dataset
  56. res = list_dataset(get_auth, 1)
  57. data = res.get("data").get("kbs")
  58. dataset_list = []
  59. pattern = r'^test_create_dataset.*'
  60. for item in data:
  61. dataset_name = item.get("name")
  62. dataset_id = item.get("id")
  63. dataset_list.append(dataset_id)
  64. match = re.match(pattern, dataset_name)
  65. assert match is not None
  66. for dataset_id in dataset_list:
  67. res = rm_dataset(get_auth, dataset_id)
  68. assert res.get("code") == 0, f"{res.get('message')}"
  69. print(f"{len(dataset_list)} datasets are deleted")
  70. def test_invalid_name_dataset(get_auth):
  71. # create dataset
  72. # with pytest.raises(Exception) as e:
  73. res = create_dataset(get_auth, 0)
  74. assert res['code'] == 102
  75. res = create_dataset(get_auth, "")
  76. assert res['code'] == 102
  77. long_string = ""
  78. while len(long_string) <= DATASET_NAME_LIMIT:
  79. long_string += random.choice(string.ascii_letters + string.digits)
  80. res = create_dataset(get_auth, long_string)
  81. assert res['code'] == 102
  82. print(res)
  83. def test_update_different_params_dataset_success(get_auth):
  84. # create dataset
  85. res = create_dataset(get_auth, "test_create_dataset")
  86. assert res.get("code") == 0, f"{res.get('message')}"
  87. # list dataset
  88. page_number = 1
  89. dataset_list = []
  90. while True:
  91. res = list_dataset(get_auth, page_number)
  92. data = res.get("data").get("kbs")
  93. for item in data:
  94. dataset_id = item.get("id")
  95. dataset_list.append(dataset_id)
  96. if len(dataset_list) < page_number * 150:
  97. break
  98. page_number += 1
  99. print(f"found {len(dataset_list)} datasets")
  100. dataset_id = dataset_list[0]
  101. json_req = {"kb_id": dataset_id, "name": "test_update_dataset", "description": "test", "permission": "me", "parser_id": "presentation",
  102. "language": "spanish"}
  103. res = update_dataset(get_auth, json_req)
  104. assert res.get("code") == 0, f"{res.get('message')}"
  105. # delete dataset
  106. for dataset_id in dataset_list:
  107. res = rm_dataset(get_auth, dataset_id)
  108. assert res.get("code") == 0, f"{res.get('message')}"
  109. print(f"{len(dataset_list)} datasets are deleted")
  110. # update dataset with different parameters
  111. def test_update_different_params_dataset_fail(get_auth):
  112. # create dataset
  113. res = create_dataset(get_auth, "test_create_dataset")
  114. assert res.get("code") == 0, f"{res.get('message')}"
  115. # list dataset
  116. page_number = 1
  117. dataset_list = []
  118. while True:
  119. res = list_dataset(get_auth, page_number)
  120. data = res.get("data").get("kbs")
  121. for item in data:
  122. dataset_id = item.get("id")
  123. dataset_list.append(dataset_id)
  124. if len(dataset_list) < page_number * 150:
  125. break
  126. page_number += 1
  127. print(f"found {len(dataset_list)} datasets")
  128. dataset_id = dataset_list[0]
  129. json_req = {"kb_id": dataset_id, "id": "xxx"}
  130. res = update_dataset(get_auth, json_req)
  131. assert res.get("code") == 101
  132. # delete dataset
  133. for dataset_id in dataset_list:
  134. res = rm_dataset(get_auth, dataset_id)
  135. assert res.get("code") == 0, f"{res.get('message')}"
  136. print(f"{len(dataset_list)} datasets are deleted")