Changeset 858 in main for trunk/openPLM/plmapp/tests/navigate.py
- Timestamp:
- 03/07/12 17:26:39 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/openPLM/plmapp/tests/navigate.py
r835 r858 3 3 from django.contrib.auth.models import User 4 4 5 from openPLM.plmapp.navigate import NavigationGraph 5 from openPLM.plmapp.navigate import NavigationGraph, OSR 6 6 from openPLM.plmapp.controllers import PartController, DocumentController,\ 7 7 UserController, GroupController … … 25 25 self.root = self.json = None 26 26 27 def get_graph_data(self, options ):28 graph = NavigationGraph(self.controller )27 def get_graph_data(self, options, results=()): 28 graph = NavigationGraph(self.controller, results) 29 29 graph.set_options(options) 30 30 graph.create_edges() … … 69 69 Tests a navigate with the "owner" option set. 70 70 """ 71 self.get_graph_data({"owner" : True }) 72 self.assertCount(2, 1) 73 main, owner = self.nodes 74 self.assertEqual("owner", self.edges[0].text_content()) 75 text = owner.text_content().strip() 76 self.assertTrue(self.user.first_name in text) 77 self.assertTrue(self.user.last_name in text) 71 for osr, results in ((False, ()), (True, (self.user,))): 72 self.get_graph_data({"owner" : True, OSR : osr }, results) 73 self.assertCount(2, 1) 74 main, owner = self.nodes 75 self.assertEqual("owner", self.edges[0].text_content()) 76 text = owner.text_content().strip() 77 self.assertTrue(self.user.first_name in text) 78 self.assertTrue(self.user.last_name in text) 79 for result in (self.cie, self.group, self.controller.object): 80 self.get_graph_data({"owner" : True, OSR : True }, (result,)) 81 self.assertCount(1, 0) 78 82 79 83 def test_navigate_signer(self): … … 81 85 Tests a navigate with the "signer" option set. 82 86 """ 83 self.get_graph_data({"signer" : True }) 84 self.assertCount(3, 2) 85 main, signer1, signer2 = self.nodes 86 for edge in self.edges: 87 self.assertTrue("sign" in edge.text_content()) 88 for node in (signer1, signer2): 89 text = node.text_content().strip() 90 self.assertTrue(self.user.first_name in text) 91 self.assertTrue(self.user.last_name in text) 92 self.assertNotEqual(signer1.attrib["id"], signer2.attrib["id"]) 87 for osr, results in ((False, ()), (True, (self.user,))): 88 self.get_graph_data({"signer" : True, OSR : osr }, results) 89 self.assertCount(3, 2) 90 main, signer1, signer2 = self.nodes 91 for edge in self.edges: 92 self.assertTrue("sign" in edge.text_content()) 93 for node in (signer1, signer2): 94 text = node.text_content().strip() 95 self.assertTrue(self.user.first_name in text) 96 self.assertTrue(self.user.last_name in text) 97 self.assertNotEqual(signer1.attrib["id"], signer2.attrib["id"]) 98 for result in (self.cie, self.group, self.controller.object): 99 self.get_graph_data({"signer" : True, OSR : True }, (result,)) 100 self.assertCount(1, 0) 93 101 94 102 def test_navigate_notified(self): … … 97 105 """ 98 106 self.controller.set_role(self.cie, "notified") 99 self.get_graph_data({"notified" : True }) 100 self.assertCount(2, 1) 101 main, owner = self.nodes 102 self.assertEqual("notified", self.edges[0].text_content()) 103 text = owner.text_content().strip() 104 self.assertTrue(self.cie.username in text) 105 107 for osr, results in ((False, ()), (True, (self.cie,))): 108 self.get_graph_data({"notified" : True }) 109 self.assertCount(2, 1) 110 main, owner = self.nodes 111 self.assertEqual("notified", self.edges[0].text_content()) 112 text = owner.text_content().strip() 113 self.assertTrue(self.cie.username in text) 114 for result in (self.user, self.group, self.controller.object): 115 self.get_graph_data({"notified" : True, OSR : True }, (result,)) 116 self.assertCount(1, 0) 117 106 118 107 119 class PartNavigateTestCase(NavigateTestCase): … … 116 128 self.user, data, True, True) 117 129 self.controller.add_child(child1, 15, 789, "kg") 118 self.get_graph_data({"child" : True }) 119 self.assertCount(2, 1) 120 main, child_node = self.nodes 121 # check the edge 122 self.assertTrue("789" in self.edges[0].text_content()) 123 self.assertTrue("15" in self.edges[0].text_content()) 124 self.assertTrue("kg" in self.edges[0].text_content()) 125 text = child_node.text_content().strip() 126 self.assertTrue(data["name"] in text) 130 for osr, results in ((False, ()), (True, (child1.object,))): 131 self.get_graph_data({"child" : True, OSR : osr }, results) 132 self.assertCount(2, 1) 133 main, child_node = self.nodes 134 # check the edge 135 self.assertTrue("789" in self.edges[0].text_content()) 136 self.assertTrue("15" in self.edges[0].text_content()) 137 self.assertTrue("kg" in self.edges[0].text_content()) 138 text = child_node.text_content().strip() 139 self.assertTrue(data["name"] in text) 127 140 # add another child to child1 128 141 child2 = PartController.create("c2", "Part", "k", 129 142 self.user, data, True, True) 130 143 child1.add_child(child2, 15, 789, "kg") 131 self.get_graph_data({"child" : True }) 132 self.assertCount(3, 2) 144 for osr, results in ((False, ()), (True, (child1.object, child2.object))): 145 self.get_graph_data({"child" : True, OSR : osr }, results) 146 self.assertCount(3, 2) 147 # empty graph is child1 is not found 148 self.get_graph_data({"child" : True, OSR : True }, (child2.object,)) 149 self.assertCount(1, 0) 133 150 # add child2 to the controller 134 151 # we should have 3 nodes (controller, child1, child2) … … 136 153 # child1 -> child2) 137 154 self.controller.add_child(child2, 15, 789, "kg") 138 self.get_graph_data({"child" : True }) 139 self.assertCount(3, 3) 155 for osr, results in ((False, ()), (True, (child1.object, child2.object))): 156 self.get_graph_data({"child" : True, OSR : osr }, results) 157 self.assertCount(3, 3) 158 for result in (self.cie, self.group, self.user, self.controller.object): 159 self.get_graph_data({"child" : True, OSR : True }, (result,)) 160 self.assertCount(1, 0) 140 161 141 162 def test_navigate_parents(self): … … 148 169 self.user, data, True, True) 149 170 parent1.add_child(self.controller, 15, 789, "kg") 150 self.get_graph_data({"parents" : True }) 151 self.assertCount(2, 1) 152 main, parent_node = self.nodes 153 self.assertTrue("789" in self.edges[0].text_content()) 154 self.assertTrue("15" in self.edges[0].text_content()) 155 self.assertTrue("kg" in self.edges[0].text_content()) 156 text = parent_node.text_content().strip() 157 self.assertTrue(data["name"] in text) 171 for osr, results in ((False, ()), (True, (parent1.object, ))): 172 self.get_graph_data({"parents" : True, OSR : osr }, results) 173 self.assertCount(2, 1) 174 main, parent_node = self.nodes 175 self.assertTrue("789" in self.edges[0].text_content()) 176 self.assertTrue("15" in self.edges[0].text_content()) 177 self.assertTrue("kg" in self.edges[0].text_content()) 178 text = parent_node.text_content().strip() 179 self.assertTrue(data["name"] in text) 158 180 # add another parent to parent1 159 181 parent2 = PartController.create("c2", "Part", "k", 160 182 self.user, data, True, True) 161 183 parent2.add_child(parent1, 15, 789, "kg") 162 self.get_graph_data({"parents" : True }) 163 self.assertCount(3, 2) 184 for osr, results in ((False, ()), (True, (parent1.object, parent2.object))): 185 self.get_graph_data({"parents" : True, OSR : osr }, results) 186 self.assertCount(3, 2) 187 self.get_graph_data({"parents" : True, OSR : True }, (parent2.object,)) 188 self.assertCount(1, 0) 164 189 # add the controller to parent2 165 190 parent2.add_child(self.controller, 5, 79, "kg") 166 self.get_graph_data({"parents" : True }) 167 self.assertCount(3, 3) 191 for osr, results in ((False, ()), (True, (parent1.object, parent2.object))): 192 self.get_graph_data({"parents" : True, OSR : osr }, results) 193 self.assertCount(3, 3) 194 for result in (self.cie, self.group, self.user, self.controller.object): 195 self.get_graph_data({"parents" : True, OSR : True }, (result,)) 196 self.assertCount(1, 0) 168 197 169 198 def test_navigate_documents(self): … … 176 205 self.user, data, True, True) 177 206 self.controller.attach_to_document(doc) 178 self.get_graph_data({"doc" : True }) 179 self.assertCount(2, 1) 180 main, doc_node = self.nodes 181 text = doc_node.text_content().strip() 182 self.assertTrue(data["name"] in text) 207 for osr, results in ((False, ()), (True, (doc.object,))): 208 self.get_graph_data({"doc" : True, OSR : osr }, results) 209 self.assertCount(2, 1) 210 main, doc_node = self.nodes 211 text = doc_node.text_content().strip() 212 self.assertTrue(data["name"] in text) 213 for result in (self.cie, self.group, self.user, self.controller.object): 214 self.get_graph_data({"doc" : True, OSR : True }, (result,)) 215 self.assertCount(1, 0) 183 216 184 217 def test_navigate_doc_parts(self): … … 191 224 self.user, data, True, True) 192 225 self.controller.attach_to_document(doc) 193 self.get_graph_data({"doc" : False, 194 "doc_parts" : [self.controller.id] }) 195 self.assertCount(2, 1) 196 main, doc_node = self.nodes 197 text = doc_node.text_content().strip() 198 self.assertTrue(data["name"] in text) 226 for osr, results in ((False, ()), (True, (doc.object,))): 227 self.get_graph_data({"doc" : False, OSR : osr, 228 "doc_parts" : [self.controller.id] }, results) 229 self.assertCount(2, 1) 230 main, doc_node = self.nodes 231 text = doc_node.text_content().strip() 232 self.assertTrue(data["name"] in text) 199 233 200 234 def test_navigate_documents2(self): … … 212 246 self.controller.attach_to_document(doc) 213 247 child1.attach_to_document(doc) 214 self.get_graph_data({"doc" : True, "child" : True}) 215 self.assertCount(3, 3) 248 for osr, results in ((False, ()), (True, (doc.object, child1.object))): 249 self.get_graph_data({"doc" : True, "child" : True}) 250 self.assertCount(3, 3) 216 251 217 252 … … 229 264 self.user, data, True, True) 230 265 self.controller.attach_to_part(part) 231 self.get_graph_data({"part" : True}) 232 self.assertCount(2, 1) 233 main, part_node = self.nodes 234 text = part_node.text_content().strip() 235 self.assertTrue(data["name"] in text) 266 for osr, results in ((False, ()), (True, (part.object,))): 267 self.get_graph_data({"part" : True, OSR: osr}, results) 268 self.assertCount(2, 1) 269 main, part_node = self.nodes 270 text = part_node.text_content().strip() 271 self.assertTrue(data["name"] in text) 272 for result in (self.cie, self.group, self.user, self.controller.object): 273 self.get_graph_data({"part" : True, OSR : True }, (result,)) 274 self.assertCount(1, 0) 236 275 237 276 class GroupNavigateTestCase(NavigateTestCase): … … 239 278 def setUp(self): 240 279 super(GroupNavigateTestCase, self).setUp() 280 self.part = self.controller.object 241 281 self.controller = GroupController(self.group, self.user) 242 282 … … 245 285 Tests a navigate with the "owner" option set. 246 286 """ 247 self.get_graph_data({"owner" : True }) 248 self.assertCount(2, 1) 249 main, owner = self.nodes 250 self.assertEqual("owner", self.edges[0].text_content()) 251 text = owner.text_content().strip() 252 self.assertTrue(self.user.first_name in text) 253 self.assertTrue(self.user.last_name in text) 287 for osr, results in ((False, ()), (True, (self.user,))): 288 self.get_graph_data({"owner" : True, OSR : osr }, results) 289 self.assertCount(2, 1) 290 main, owner = self.nodes 291 self.assertEqual("owner", self.edges[0].text_content()) 292 text = owner.text_content().strip() 293 self.assertTrue(self.user.first_name in text) 294 self.assertTrue(self.user.last_name in text) 295 for result in (self.cie, self.group, self.part): 296 self.get_graph_data({"owner" : True, OSR : True }, (result,)) 297 self.assertCount(1, 0) 254 298 255 299 def test_navigate_member(self): … … 257 301 Tests a navigate with the "member" option set. 258 302 """ 259 self.get_graph_data({"user" : True }) 260 self.assertCount(2, 1) 261 main, owner = self.nodes 262 self.assertEqual("member", self.edges[0].text_content()) 263 text = owner.text_content().strip() 264 self.assertTrue(self.user.first_name in text) 265 self.assertTrue(self.user.last_name in text) 303 for osr, results in ((False, ()), (True, (self.user,))): 304 self.get_graph_data({"user" : True, OSR : osr }, results) 305 self.assertCount(2, 1) 306 main, owner = self.nodes 307 self.assertEqual("member", self.edges[0].text_content()) 308 text = owner.text_content().strip() 309 self.assertTrue(self.user.first_name in text) 310 self.assertTrue(self.user.last_name in text) 311 for result in (self.cie, self.group, self.part): 312 self.get_graph_data({"member" : True, OSR : True }, (result,)) 313 self.assertCount(1, 0) 266 314 267 315 def test_navigate_two_members(self): … … 276 324 brian.groups.add(self.group) 277 325 brian.save() 278 self.get_graph_data({"user" : True }) 279 self.assertCount(3, 2) 280 for edge in self.edges: 281 self.assertEqual("member", edge.text_content()) 282 for node in self.nodes[1:]: 283 text = node.text_content().strip() 284 self.assertTrue(self.user.first_name in text or brian.username in text) 326 for osr, results in ((False, ()), (True, (self.user, brian))): 327 self.get_graph_data({"user" : True, OSR : osr }, results) 328 self.assertCount(3, 2) 329 for edge in self.edges: 330 self.assertEqual("member", edge.text_content()) 331 for node in self.nodes[1:]: 332 text = node.text_content().strip() 333 self.assertTrue(self.user.first_name in text or brian.username in text) 334 # only brian 335 self.get_graph_data({"user" : True, OSR : True }, (brian,)) 336 self.assertCount(2, 1) 337 self.assertEqual("member", self.edges[0].text_content()) 338 text = self.nodes[1].text_content().strip() 339 self.assertTrue(brian.username in text) 340 for result in (self.cie, self.group, self.part): 341 self.get_graph_data({"member" : True, OSR : True }, (result,)) 342 self.assertCount(1, 0) 285 343 286 344 def test_navigate_part(self): … … 289 347 """ 290 348 # we already have one part 291 self.get_graph_data({"part" : True }) 292 self.assertCount(2, 1) 293 main, part_node = self.nodes 294 self.assertEqual([part_node], self.root.find_class("node_part")) 295 296 def test_navigate_doc(self): 297 """ 298 Tests a navigate with the "doc" option set. 299 """ 349 for osr, results in ((False, ()), (True, (self.part,))): 350 self.get_graph_data({"part" : True, OSR : osr }, results) 351 self.assertCount(2, 1) 352 main, part_node = self.nodes 353 self.assertEqual([part_node], self.root.find_class("node_part")) 300 354 doc = DocumentController.create("d", "Document", "doc", 301 355 self.user, self.DATA, True, True) 302 self.get_graph_data({"doc" : True }) 303 self.assertCount(2, 1) 304 main, doc_node = self.nodes 305 self.assertEqual([doc_node], self.root.find_class("node_document")) 356 for result in (self.cie, self.group, self.user, doc.object): 357 self.get_graph_data({"part" : True, OSR : True }, (result,)) 358 self.assertCount(1, 0) 359 360 def test_navigate_doc(self): 361 """ 362 Tests a navigate with the "doc" option set. 363 """ 364 doc = DocumentController.create("d", "Document", "doc", 365 self.user, self.DATA, True, True) 366 for osr, results in ((False, ()), (True, (doc.object,))): 367 self.get_graph_data({"doc" : True, OSR : osr }, results) 368 self.assertCount(2, 1) 369 main, doc_node = self.nodes 370 self.assertEqual([doc_node], self.root.find_class("node_document")) 371 for result in (self.cie, self.group, self.part, self.user): 372 self.get_graph_data({"doc" : True, OSR : True }, (result,)) 373 self.assertCount(1, 0) 306 374 307 375 class UserNavigateTestCase(NavigateTestCase): … … 317 385 """ 318 386 # we already own self.part 319 self.get_graph_data({"owned" : True }) 320 self.assertCount(2, 1) 387 for osr, results in ((False, ()), (True, (self.part.object,))): 388 self.get_graph_data({"owned" : True, OSR : osr }, results) 389 self.assertCount(2, 1) 390 doc = DocumentController.create("d", "Document", "doc", 391 self.user, self.DATA, True, True) 392 for osr, results in ((False, ()), (True, (self.part.object, doc.object))): 393 self.get_graph_data({"owned" : True, OSR : osr }, results) 394 self.assertCount(3, 2) 395 for result in (self.cie, self.group, self.user): 396 self.get_graph_data({"owned" : True, OSR : True }, (result,)) 397 self.assertCount(1, 0) 321 398 322 399 def test_navigate_doc_parts(self): … … 331 408 self.cie, data, True, True) 332 409 self.part.attach_to_document(doc) 333 self.get_graph_data({"owned" : True, 334 "doc_parts" : [self.part.id] }) 335 self.assertTrue(3, 2) 410 for osr, results in ((False, ()), (True, (doc.object,))): 411 self.get_graph_data({"owned" : True, OSR : osr, 412 "doc_parts" : [self.part.id] }, results) 413 self.assertTrue(3, 2) 414 for result in (self.cie, self.group, self.user): 415 self.get_graph_data({"owned" : True, OSR : True, 416 "doc_parts" : [self.part.id] }, (result,)) 417 self.assertCount(1, 0) 336 418 337 419 def test_navigate_notified(self): … … 342 424 self.assertCount(1, 0) 343 425 self.part.set_role(self.user, "notified") 344 self.get_graph_data({"request_notification_from" : True }) 345 self.assertCount(2, 1) 426 for osr, results in ((False, ()), (True, (self.part.object,))): 427 self.get_graph_data({"request_notification_from" : True, OSR : osr }, 428 results) 429 self.assertCount(2, 1) 346 430 347 431 def test_navigate_signer(self): … … 349 433 Tests a navigate with the "to_sign" option set. 350 434 """ 351 self.get_graph_data({"to_sign" : True }) 352 self.assertCount(3, 2) 353 roles = set(e.text_content().strip() for e in self.edges) 354 self.assertEqual(set(("sign1stlevel", "sign2ndlevel")), roles) 355 435 for osr, results in ((False, ()), (True, (self.part.object,))): 436 self.get_graph_data({"to_sign" : True, OSR : osr }, results) 437 self.assertCount(3, 2) 438 roles = set(e.text_content().strip() for e in self.edges) 439 self.assertEqual(set(("sign1stlevel", "sign2ndlevel")), roles) 440 for result in (self.cie, self.group, self.user): 441 self.get_graph_data({"to_sign" : True, OSR : True }, (result,)) 442 self.assertCount(1, 0) 443
Note: See TracChangeset
for help on using the changeset viewer.