本文整理汇总了Python中temba.contacts.models.URN.from_twitter方法的典型用法代码示例。如果您正苦于以下问题:Python URN.from_twitter方法的具体用法?Python URN.from_twitter怎么用?Python URN.from_twitter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类temba.contacts.models.URN
的用法示例。
在下文中一共展示了URN.from_twitter方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_contact
# 需要导入模块: from temba.contacts.models import URN [as 别名]
# 或者: from temba.contacts.models.URN import from_twitter [as 别名]
def create_contact(self, name=None, number=None, twitter=None, urn=None, is_test=False, **kwargs):
"""
Create a contact in the master test org
"""
urns = []
if number:
urns.append(URN.from_tel(number))
if twitter:
urns.append(URN.from_twitter(twitter))
if urn:
urns.append(urn)
if not name and not urns: # pragma: no cover
raise ValueError("Need a name or URN to create a contact")
kwargs['name'] = name
kwargs['urns'] = urns
kwargs['is_test'] = is_test
if 'org' not in kwargs:
kwargs['org'] = self.org
if 'user' not in kwargs:
kwargs['user'] = self.user
return Contact.get_or_create(**kwargs)
示例2: create_contact
# 需要导入模块: from temba.contacts.models import URN [as 别名]
# 或者: from temba.contacts.models.URN import from_twitter [as 别名]
def create_contact(self, name=None, number=None, twitter=None, twitterid=None, urn=None, is_test=False, **kwargs):
"""
Create a contact in the master test org
"""
urns = []
if number:
urns.append(URN.from_tel(number))
if twitter:
urns.append(URN.from_twitter(twitter))
if twitterid:
urns.append(URN.from_twitterid(twitterid))
if urn:
urns.append(urn)
if not name and not urns: # pragma: no cover
raise ValueError("Need a name or URN to create a contact")
kwargs["name"] = name
kwargs["urns"] = urns
kwargs["is_test"] = is_test
if "org" not in kwargs:
kwargs["org"] = self.org
if "user" not in kwargs:
kwargs["user"] = self.user
return Contact.get_or_create_by_urns(**kwargs)
示例3: test_resolve
# 需要导入模块: from temba.contacts.models import URN [as 别名]
# 或者: from temba.contacts.models.URN import from_twitter [as 别名]
def test_resolve(self, mock_lookup_user):
self.joe = self.create_contact("joe", twitter="therealjoe")
urn = self.joe.get_urns()[0]
# test no return value, should cause joe to be stopped
mock_lookup_user.return_value = []
resolve_twitter_ids()
self.joe.refresh_from_db()
urn.refresh_from_db()
self.assertTrue(self.joe.is_stopped)
self.assertIsNone(urn.display)
self.assertEqual("twitter:therealjoe", urn.identity)
self.assertEqual("therealjoe", urn.path)
self.joe.unstop(self.admin)
# test a real return value
mock_lookup_user.return_value = [dict(screen_name="TheRealJoe", id="123456")]
resolve_twitter_ids()
urn.refresh_from_db()
self.assertIsNone(urn.contact)
new_urn = self.joe.get_urns()[0]
self.assertEqual("twitterid:123456", new_urn.identity)
self.assertEqual("123456", new_urn.path)
self.assertEqual("therealjoe", new_urn.display)
self.assertEqual("twitterid:123456#therealjoe", new_urn.urn)
old_fred = self.create_contact("old fred", urn=URN.from_twitter("fred"))
new_fred = self.create_contact("new fred", urn=URN.from_twitterid("12345", screen_name="fred"))
mock_lookup_user.return_value = [dict(screen_name="fred", id="12345")]
resolve_twitter_ids()
# new fred shouldn't have any URNs anymore as he really is old_fred
self.assertEqual(0, len(new_fred.urns.all()))
# old fred should be unchanged
self.assertEqual("twitterid:12345", old_fred.urns.all()[0].identity)
self.jane = self.create_contact("jane", twitter="jane10")
mock_lookup_user.side_effect = Exception(
"Twitter API returned a 404 (Not Found), No user matches for specified terms."
)
resolve_twitter_ids()
self.jane.refresh_from_db()
self.assertTrue(self.jane.is_stopped)
self.sarah = self.create_contact("sarah", twitter="sarah20")
mock_lookup_user.side_effect = Exception("Unable to reach API")
resolve_twitter_ids()
self.sarah.refresh_from_db()
self.assertFalse(self.sarah.is_stopped)
示例4: _create_contact_batch
# 需要导入模块: from temba.contacts.models import URN [as 别名]
# 或者: from temba.contacts.models.URN import from_twitter [as 别名]
def _create_contact_batch(self, batch):
"""
Bulk creates a batch of contacts from flat representations
"""
for c in batch:
c["object"] = Contact(
org=c["org"],
name=c["name"],
language=c["language"],
is_stopped=c["is_stopped"],
is_blocked=c["is_blocked"],
is_active=c["is_active"],
created_by=c["user"],
created_on=c["created_on"],
modified_by=c["user"],
modified_on=c["modified_on"],
fields=c["fields_as_json"],
)
Contact.objects.bulk_create([c["object"] for c in batch])
# now that contacts have pks, bulk create the actual URN, value and group membership objects
batch_urns = []
batch_memberships = []
for c in batch:
org = c["org"]
c["urns"] = []
if c["tel"]:
c["urns"].append(
ContactURN(
org=org,
contact=c["object"],
priority=50,
scheme=TEL_SCHEME,
path=c["tel"],
identity=URN.from_tel(c["tel"]),
)
)
if c["twitter"]:
c["urns"].append(
ContactURN(
org=org,
contact=c["object"],
priority=50,
scheme=TWITTER_SCHEME,
path=c["twitter"],
identity=URN.from_twitter(c["twitter"]),
)
)
for g in c["groups"]:
batch_memberships.append(ContactGroup.contacts.through(contact=c["object"], contactgroup=g))
batch_urns += c["urns"]
ContactURN.objects.bulk_create(batch_urns)
ContactGroup.contacts.through.objects.bulk_create(batch_memberships)