Skip to content

Commit e6c99e1

Browse files
vvgrem@gmail.comvvgrem@gmail.com
authored andcommitted
SharePoint API: Taxonomy types
1 parent 37d5d25 commit e6c99e1

File tree

4 files changed

+34
-14
lines changed

4 files changed

+34
-14
lines changed

office365/sharepoint/taxonomy/term_group.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class TermGroup(BaseEntity):
77
"""Represents the top-level container in a TermStore object."""
88

99
@property
10-
def termSets(self):
10+
def term_sets(self):
1111
return self.properties.get("termSets",
1212
TermSetCollection(self.context, ResourcePath("termSets", self.resource_path)))
1313

office365/sharepoint/taxonomy/term_set.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
from office365.runtime.client_object import ClientObject
22
from office365.runtime.resource_path import ResourcePath
3+
from office365.sharepoint.taxonomy.term_collection import TermCollection
34

45

56
class TermSet(ClientObject):
67

8+
@property
9+
def terms(self):
10+
return self.properties.get("terms",
11+
TermCollection(self.context, ResourcePath("terms", self.resource_path)))
12+
713
def set_property(self, name, value, persist_changes=True):
814
super(TermSet, self).set_property(name, value, persist_changes)
915
if self._resource_path is None:

office365/sharepoint/taxonomy/term_store.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from office365.runtime.queries.service_operation_query import ServiceOperationQuery
33
from office365.runtime.resource_path import ResourcePath
44
from office365.sharepoint.taxonomy.termGroupCollection import TermGroupCollection
5-
from office365.sharepoint.taxonomy.termSetCollection import TermSetCollection
65
from office365.sharepoint.taxonomy.term_collection import TermCollection
76

87

@@ -19,8 +18,9 @@ def search_term(self, label, setId, parentTermId=None, languageTag=None):
1918
:return:
2019
"""
2120
return_type = TermCollection(self.context)
22-
params = {"label": label, "setId": setId, "parentTermId": parentTermId, "languageTag": languageTag}
23-
qry = ServiceOperationQuery(self, "searchTerm", None, params, None, return_type)
21+
# params = {"label": label, "setId": setId, "parentTermId": parentTermId, "languageTag": languageTag}
22+
params = {"label": label, "setId": setId}
23+
qry = ServiceOperationQuery(self, "searchTerm", params, None, None, return_type)
2424
self.context.add_query(qry)
2525
return return_type
2626

tests/sharepoint/test_taxonomy.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from office365.sharepoint.fields.field import Field
22
from office365.sharepoint.taxonomy.taxonomy_field import TaxonomyField
33
from office365.sharepoint.taxonomy.taxonomy_service import TaxonomyService
4+
from office365.sharepoint.taxonomy.term import Term
5+
from office365.sharepoint.taxonomy.term_set import TermSet
46
from office365.sharepoint.taxonomy.term_store import TermStore
57
from office365.sharepoint.taxonomy.term_group import TermGroup
68
from tests.sharepoint.sharepoint_case import SPTestCase
@@ -9,6 +11,8 @@
911
class TestSPTaxonomy(SPTestCase):
1012
target_field = None # type: Field
1113
tax_svc = None # type: TaxonomyService
14+
target_term_group = None # type: TermGroup
15+
target_term_set = None # type: TermSet
1216

1317
@classmethod
1418
def setUpClass(cls):
@@ -25,18 +29,28 @@ def test1_get_term_store(self):
2529
self.assertIsNotNone(term_store.name)
2630

2731
def test2_get_term_groups(self):
28-
term_groups = self.tax_svc.term_store.term_groups.get().top(1).execute_query()
29-
if len(term_groups) > 0:
30-
self.assertIsInstance(term_groups[0], TermGroup)
31-
self.assertEqual(1, len(term_groups))
32+
term_groups = self.tax_svc.term_store.term_groups.filter("name eq 'Geography'").get().execute_query()
33+
self.assertGreater(len(term_groups), 0)
34+
self.assertIsInstance(term_groups[0], TermGroup)
35+
self.__class__.target_term_group = term_groups[0]
3236

3337
def test3_get_term_sets(self):
34-
pass
38+
term_sets = self.__class__.target_term_group.term_sets.get().execute_query()
39+
self.assertGreater(len(term_sets), 0)
40+
self.assertIsInstance(term_sets[0], TermSet)
41+
self.__class__.target_term_set = term_sets[0]
3542

36-
def test4_search_term(self):
37-
pass
43+
def test4_get_terms(self):
44+
terms = self.__class__.target_term_set.terms.get().execute_query()
45+
self.assertGreater(len(terms), 0)
46+
self.assertIsInstance(terms[0], Term)
47+
48+
# def test5_search_term(self):
49+
# result = self.tax_svc.term_store.search_term("Finland", self.__class__.target_term_set.properties.get('id'))
50+
# self.tax_svc.execute_query()
51+
# self.assertIsNotNone(result)
3852

39-
def test5_create_list_tax_field(self):
53+
def test6_create_list_tax_field(self):
4054
ssp_id = "f02be691-d551-462f-aaae-e1c89168cd0b"
4155
term_set_id = "b49f64b3-4722-4336-9a5c-56c326b344d4"
4256
text_field_id = "cd790052-00e3-4317-a090-365cd85795b6"
@@ -50,7 +64,7 @@ def test5_create_list_tax_field(self):
5064
self.assertIsNotNone(tax_field.resource_path)
5165
self.__class__.target_field = tax_field
5266

53-
def test5_get_tax_field(self):
67+
def test7_get_tax_field(self):
5468
existing_field = self.__class__.target_field.get().execute_query()
5569
self.assertTrue(existing_field.properties.get('TypeAsString'), 'TaxonomyFieldType')
5670
self.assertIsInstance(existing_field, TaxonomyField)
@@ -64,7 +78,7 @@ def test5_get_tax_field(self):
6478
self.client.execute_batch()
6579
self.assertIsNotNone(text_field.internal_name)
6680

67-
def test6_delete_tax_field(self):
81+
def test8_delete_tax_field(self):
6882
self.__class__.target_field.delete_object().execute_query()
6983

7084
# text_field_id = self.__class__.target_field.properties.get('TextField')

0 commit comments

Comments
 (0)