示例#1
0
 def test_average_speed_per_hour_returns_metric_result(self):
     # Arrange
     django_settings.set('String', 'unit_of_measurement', settings.METRIC)
     start = timezone.now()
     finish = start + datetime.timedelta(seconds=15)
     # Act
     avg_sph = compute.average_speed_per_hour(start, finish, 50)
     # Assert
     self.assertEqual(12, avg_sph)
示例#2
0
 def test_average_speed_per_hour_returns_metric_result(self):
     # Arrange
     django_settings.set('String', 'unit_of_measurement', settings.METRIC)
     start = timezone.now()
     finish = start + datetime.timedelta(seconds=15)
     # Act
     avg_sph = compute.average_speed_per_hour(start, finish, 50)
     # Assert
     self.assertEqual(12, avg_sph)
示例#3
0
文件: forms.py 项目: ygneo/daguerro
 def save(self, commit=True):
     if commit:
         django_settings_admin.clear_cache(
             modeladmin=django_settings.admin.SettingAdmin,
             request=None,
             queryset=django_settings.models.Setting.objects.all()
         )
         for key, value in self.cleaned_data.iteritems():
             field_type = self.fields[key].__class__.__name__
             django_settings.set(self.SETTING_TYPE[field_type], key.upper(), value)
示例#4
0
 def save(self):
     for f in self.fields:
         value = self.cleaned_data.get(f)
         if value:
             t = 'String'
             if (len(value) > 254):
                 t = 'LongString'
             django_settings.set(t, f, value)
         else:
             django_settings.set('String', f, '', validate=False)
    def test_should_cache_only_for_configurable_amount_of_time(self):
        self.assert_equal(django_settings.conf.DJANGO_SETTINGS_TIMEOUT, 2)

        original_method = django_settings.data.cache.set

        def set_method_assure_timeout_passing(key, origin_value, timeout=None):
            self.assert_equal(timeout, django_settings.conf.DJANGO_SETTINGS_TIMEOUT)
            return original_method(key, origin_value, timeout=timeout)

        django_settings.data.cache.set = set_method_assure_timeout_passing

        django_settings.set('Email', 'test_email', '*****@*****.**')
        django_settings.data.cache.set = original_method
    def test_should_cache_only_for_configurable_amount_of_time(self):
        self.assert_equal(django_settings.conf.DJANGO_SETTINGS_TIMEOUT, 2)

        original_method = django_settings.data.cache.set

        def set_method_assure_timeout_passing(key, origin_value, timeout=None):
            self.assert_equal(timeout,
                              django_settings.conf.DJANGO_SETTINGS_TIMEOUT)
            return original_method(key, origin_value, timeout=timeout)

        django_settings.data.cache.set = set_method_assure_timeout_passing

        django_settings.set('Email', 'test_email', '*****@*****.**')
        django_settings.data.cache.set = original_method
示例#7
0
    def test_setting_value_few_times(self):
        typename = "MyString"
        django_settings.set(typename, 'test_string', 'data1')
        n.assert_equal(django_settings.exists('test_string'), True)
        n.assert_equal(django_settings.get("test_string"), "data1")

        django_settings.set(typename, 'test_string', 'data2')
        n.assert_equal(django_settings.data.get("test_string"), "data2")

        django_settings.set(typename, 'test_string', 'data3')
        n.assert_equal(django_settings.data.get("test_string"), "data3")

        django_settings.set(typename, 'test_string', 'data4')
        n.assert_equal(django_settings.data.get("test_string"), "data4")
示例#8
0
    def test_setting_value_few_times(self):
        typename = "MyString"
        django_settings.set(typename, 'test_string', 'data1')
        self.assert_equal(django_settings.exists('test_string'), True)
        self.assert_equal(django_settings.get("test_string"), "data1")

        django_settings.set(typename, 'test_string', 'data2')
        self.assert_equal(django_settings.data.get("test_string"), "data2")

        django_settings.set(typename, 'test_string', 'data3')
        self.assert_equal(django_settings.data.get("test_string"), "data3")

        django_settings.set(typename, 'test_string', 'data4')
        self.assert_equal(django_settings.data.get("test_string"), "data4")
 def set_all_data():
     for type_name, name, value in data:
         django_settings.set(type_name, name, value)
示例#10
0
    def test_should_set_properly(self):
        n.assert_true(hasattr(django_settings.models, 'MyString'))

        assert not django_settings.exists('admin_email')
        django_settings.set('MyString', 'admin_email', '*****@*****.**')
        assert django_settings.get('admin_email') == '*****@*****.**'
示例#11
0
    def handle(self, *args, **options):
        '''For each Team object check their sponsorship
        page and update their record in the database
        '''
        # connect to the API
        if not settings.TWITTER_CONSUMER_KEY:
            raise Exception("There are no Twitter user credentials")

        api = TwitterAPI(
            settings.TWITTER_CONSUMER_KEY,
            settings.TWITTER_CONSUMER_SECRET,
            settings.TWITTER_ACCESS_TOKEN_KEY,
            settings.TWITTER_ACCESS_TOKEN_SECRET
        )

        streams = TwitterStream.objects.all().filter(
            Q(type=TwitterStream.TWITTER) | Q(type=TwitterStream.TWITTER_LIST)
        )

        for stream in streams:
            logging.debug("Now working on %s" % stream)

            # look up the settings in the database to see where 
            # were we the last time we asked for tweets from Twitter
            since_id = django_settings.get('TWITTER_SINCE_ID_%s' % stream.stream_id, default=1)
            new_since_id = since_id

            # make APiI request and check HTTP response
            r = api.request('lists/statuses', 
                    {
                        'list_id': stream.stream_id, 
                        'include_rts': stream.include_rts,
                        'since_id': since_id,
                        'count': 25
                    }
                )
            if r.status_code != 200:
                logging.exception("API Call Failed")
                raise Exception("API Call Failed")

            # prcoess tweets
            for tweet in r.get_iterator():

                try:
                    try:
                        tweet['retweeted_status'] # this key is only set on retweets
                        # this is a retweet by our accounts
                        # we care about the original tweet maker not ourselves
                        tweet = tweet['retweeted_status']

                    except KeyError:
                        pass

                    # extract out the media from the entities
                    try:
                        media_url = tweet['entities']['media'][0]['media_url']
                    except:
                        media_url = None

                    # strip the timezone off the timestamp
                    time_tz = dateutil.parser.parse(tweet['created_at'])
                    time = datetime.datetime(time_tz.year, time_tz.month, time_tz.day, time_tz.hour, time_tz.minute, time_tz.second)

                    if not Tweet.objects.all().filter(tweet_id=tweet['id']).exists():
                        new_tweet = Tweet.objects.create(
                                tweet_id=tweet['id'],
                                media_url=media_url,
                                message=_html_for_tweet(tweet),
                                time=time,
                                in_reply_to_user_name=tweet['in_reply_to_screen_name'],
                                retweeted=True,
                                user_id=tweet['user']['id'],
                                user_name=tweet['user']['screen_name'],
                                user_photo=tweet['user']['profile_image_url'],
                                team=None
                            )

                        # update the since id so we don't get the same
                        # tweets mutliple times from twitter
                        if new_tweet.tweet_id < new_since_id:
                            new_since_id = new_tweet.tweet_id

                        logging.debug("Created tweet %i" % new_tweet.tweet_id)
                    else:
                        logging.debug("Tweet %s has already been added to the database" % tweet['id'])
                        new_tweet = None

                except Exception as e:
                    logging.exception("Failed to process tweet %d" % tweet['id'])

            # update settings datastore with highest tweet id
            django_settings.set('Integer', 'TWITTER_SINCE_ID_%s' % stream.stream_id, new_since_id)
示例#12
0
 def set_all_data():
     for type_name, name, value in data:
         django_settings.set(type_name, name, value)
示例#13
0
    def test_should_set_properly(self):
        self.assert_true(hasattr(django_settings.models, 'MyString'))

        assert not django_settings.exists('admin_email')
        django_settings.set('MyString', 'admin_email', '*****@*****.**')
        assert django_settings.get('admin_email') == '*****@*****.**'