def test(self): User.create(email='*****@*****.**') # no exception here as empty response expected data = { 'event_name': 'Eventful 1', 'created_at': int(time.time()), 'email': '*****@*****.**' } Event.create(**data)
def it_allows_update_last_request_at(self): payload = { 'user_id': '1224242', 'update_last_request_at': True, 'custom_attributes': {} } with patch.object(Intercom, 'post', return_value=payload) as mock_method: User.create(user_id='1224242', update_last_request_at=True) mock_method.assert_called_once_with( '/users/', update_last_request_at=True, user_id='1224242')
def it_allows_update_last_request_at(self): payload = { 'user_id': '1224242', 'update_last_request_at': True, 'custom_attributes': {} } with patch.object(Intercom, 'post', return_value=payload) as mock_method: User.create(user_id='1224242', update_last_request_at=True) mock_method.assert_called_once_with('/users/', update_last_request_at=True, user_id='1224242')
def save(self, *args, **kwargs): """ Save the object with the "deploying" status to the DB to get the ID, and use that in a celery deploy task """ if not self.id: self.status = 'Deploying' super(Deployment, self).save(*args, **kwargs) if self.status == 'Deploying': deploy.delay(self) User.create( email=self.email )
def it_can_use_user_create_for_convenience(self): payload = { 'email': '*****@*****.**', 'user_id': 'i-1224242', 'custom_attributes': {} } with patch.object(Intercom, 'post', return_value=payload) as mock_method: # noqa user = User.create(email="*****@*****.**", user_id="i-1224242") eq_(payload, user.to_dict) mock_method.assert_called_once_with('/users/', email="*****@*****.**", user_id="i-1224242") # noqa
def it_allows_setting_dates_to_none_without_converting_them_to_0(self): payload = { 'email': '*****@*****.**', 'custom_attributes': {}, 'remote_created_at': None } with patch.object(Intercom, 'post', return_value=payload) as mock_method: user = User.create(email="*****@*****.**", remote_created_at=None) ok_(user.remote_created_at is None) mock_method.assert_called_once_with('/users/', email="*****@*****.**", remote_created_at=None) # noqa
def it_updates_the_user_with_attributes_set_by_the_server(self): payload = { 'email': '*****@*****.**', 'user_id': 'i-1224242', 'custom_attributes': {}, 'session_count': 4 } with patch.object(Intercom, 'post', return_value=payload) as mock_method: user = User.create(email="*****@*****.**", user_id="i-1224242") eq_(payload, user.to_dict) mock_method.assert_called_once_with('/users/', email="*****@*****.**", user_id="i-1224242") # noqa
def get_or_create_user(timestamp): # get user email = '*****@*****.**' % (timestamp) try: user = User.find(email=email) except ResourceNotFound: # Create a user user = User.create(email=email, user_id=timestamp, name="Ada %s" % (timestamp)) time.sleep(5) return user
def get_or_create_user(timestamp): # get user email = '*****@*****.**' % (timestamp) try: user = User.find(email=email) except ResourceNotFound: # Create a user user = User.create( email=email, user_id=timestamp, name="Ada %s" % (timestamp)) time.sleep(5) return user
def test(self): user = User.create(email='*****@*****.**') # store current session count session_count = user.session_count # register a new session user.new_session = True user.save() # count has increased by 1 self.assertEquals(session_count + 1, user.session_count) # register a new session user.new_session = True user.save() # count has increased by 1 self.assertEquals(session_count + 2, user.session_count)
def export_users_batch(argv=sys.argv): if len(argv) < 2: usage(argv) config_uri = argv[1] options = parse_vars(argv[2:]) setup_logging(config_uri) settings = get_appsettings(config_uri, options=options) engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) create_attrs = {'name': 'nicename', 'email': 'email', 'contact_email': 'linkedin_email', 'phone': 'phone', #'user_hash': 'get_hmac', 'created_at': 'create_timestamp', 'poc': 'point_of_contact', 'primary_type': 'primary_type', 'total_sent_messages': 'sent', "total_connected_messages": 'connected', "conversion_messages": 'ratio', "Connect_Me-Accepted": 'connect_me_accept', "Connect_Me-Sent": 'connect_me_sent', "Connect_Me-Conv_Rate": 'connect_me_conv', "Request_Meeting-Accepted": 'request_meeting_accept', "Request_Meeting-Sent": 'request_meeting_sent', "Request_Meeting-Conv_Rate": 'request_meeting_conv', "Customer-To-Founder-Accepted": 'company_accept', "Customer-To-Founder-Sent": 'company_sent', "Customer-To-Founder-Conv_Rate": 'company_conv' } not_custom_attrs = ['name', 'email', 'created_at'] with transaction.manager: Intercom.app_id = Settings.get('intercom_id') Intercom.app_api_key = Settings.get('intercom_api_key') users = DBSession.query(User).filter(User.activated == True, User.login_enabled == True).all() print 'Rate limits', Intercom.rate_limit_details print 'Have %s users able to login, starting to update their info in intercom!' % len(users) for user in users: print 'processing user %s' % user.email try: intercom_user = IntercomUser.find(email=user.email) except: print 'created new user for intercom' intercom_user = IntercomUser.create(email=user.email) stats = user.get_connect_stats() changed = False for intercomattr, userattr in create_attrs.iteritems(): val = stats.get(userattr, getattr(user, userattr, None)) if hasattr(val, '__call__'): val = val() if val is None: continue changed = True if intercomattr in not_custom_attrs: setattr(intercom_user, intercomattr, val) else: intercom_user.custom_attributes[intercomattr] = val if user.company: intercom_user.companies = [{'id': user.company.id, 'name': user.company.name}] intercom_user.custom_attributes['class_number'] = user.company.alchemistclass \ if user.company else 'No class' if changed: print 'sending %s info' % user.email intercom_user.save() if Intercom.rate_limit_details.get('remaining', 0) <= 10: break
def create_intercom_profile(email): user = IntercomUser.create(email=email) return user