图片解析应用
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.

82 lines
2.3 KiB

  1. import uuid
  2. from kazoo.testing import KazooTestCase
  3. class KazooPartyTests(KazooTestCase):
  4. def setUp(self):
  5. super(KazooPartyTests, self).setUp()
  6. self.path = "/" + uuid.uuid4().hex
  7. def test_party(self):
  8. parties = [self.client.Party(self.path, "p%s" % i) for i in range(5)]
  9. one_party = parties[0]
  10. assert list(one_party) == []
  11. assert len(one_party) == 0
  12. participants = set()
  13. for party in parties:
  14. party.join()
  15. participants.add(party.data.decode("utf-8"))
  16. assert set(party) == participants
  17. assert len(party) == len(participants)
  18. for party in parties:
  19. party.leave()
  20. participants.remove(party.data.decode("utf-8"))
  21. assert set(party) == participants
  22. assert len(party) == len(participants)
  23. def test_party_reuse_node(self):
  24. party = self.client.Party(self.path, "p1")
  25. self.client.ensure_path(self.path)
  26. self.client.create(party.create_path)
  27. party.join()
  28. assert party.participating is True
  29. party.leave()
  30. assert party.participating is False
  31. assert len(party) == 0
  32. def test_party_vanishing_node(self):
  33. party = self.client.Party(self.path, "p1")
  34. party.join()
  35. assert party.participating is True
  36. self.client.delete(party.create_path)
  37. party.leave()
  38. assert party.participating is False
  39. assert len(party) == 0
  40. class KazooShallowPartyTests(KazooTestCase):
  41. def setUp(self):
  42. super(KazooShallowPartyTests, self).setUp()
  43. self.path = "/" + uuid.uuid4().hex
  44. def test_party(self):
  45. parties = [
  46. self.client.ShallowParty(self.path, "p%s" % i) for i in range(5)
  47. ]
  48. one_party = parties[0]
  49. assert list(one_party) == []
  50. assert len(one_party) == 0
  51. participants = set()
  52. for party in parties:
  53. party.join()
  54. participants.add(party.data.decode("utf-8"))
  55. assert set(party) == participants
  56. assert len(party) == len(participants)
  57. for party in parties:
  58. party.leave()
  59. participants.remove(party.data.decode("utf-8"))
  60. assert set(party) == participants
  61. assert len(party) == len(participants)