Skip to content

Commit

Permalink
Merge branch 'develop' into feature/issue-693-change-the-twitter-tran…
Browse files Browse the repository at this point in the history
…sport-to-use-txtwitter
  • Loading branch information
justinvdm committed Jan 9, 2014
2 parents 77085a0 + 5f5e77c commit 1cfa76a
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
7 changes: 4 additions & 3 deletions vumi/config.py
Expand Up @@ -2,6 +2,7 @@

from copy import deepcopy
from urllib2 import urlparse
import inspect
import textwrap
import re

Expand Down Expand Up @@ -98,6 +99,8 @@ def get_value(self, obj):
return self.clean(value) if value is not None else None

def __get__(self, obj, cls):
if obj is None:
return self
if obj.static and not self.static:
self.raise_config_error("is not marked as static.")
return self.get_value(obj)
Expand Down Expand Up @@ -325,12 +328,10 @@ def __new__(mcs, name, bases, dict):
fields = []
unified_class_dict = {}
for base in bases:
unified_class_dict.update(base.__dict__)
unified_class_dict.update(inspect.getmembers(base))
unified_class_dict.update(dict)

for key, possible_field in unified_class_dict.items():
if key in fields:
continue
if isinstance(possible_field, ConfigField):
fields.append(possible_field)
possible_field.setup(key)
Expand Down
22 changes: 22 additions & 0 deletions vumi/tests/test_config.py
Expand Up @@ -125,6 +125,8 @@ class BarConfig(FooConfig):
bar = ConfigField("New field.")

conf = BarConfig({'foo': 'blah', 'bar': 'bleh'})
self.assertEqual(conf.fields,
[FooConfig.foo, BarConfig.bar])
self.assertEqual(conf.foo, 'blah')
self.assertEqual(conf.bar, 'bleh')

Expand All @@ -143,6 +145,26 @@ class BarConfig(FooConfig):
" New field.",
]))

def test_double_inheritance(self):
class FooConfig(Config):
"Test config."
foo = ConfigField("From base class.")

class BarConfig(FooConfig):
"Another test config."
bar = ConfigField("From middle class.")

class BazConfig(BarConfig):
"Second-level inheritance test config."
baz = ConfigField("From top class.")

conf = BazConfig({'foo': 'blah', 'bar': 'bleh', 'baz': 'blerg'})
self.assertEqual(conf.fields,
[FooConfig.foo, BarConfig.bar, BazConfig.baz])
self.assertEqual(conf.foo, 'blah')
self.assertEqual(conf.bar, 'bleh')
self.assertEqual(conf.baz, 'blerg')

def test_validation(self):
class FooConfig(Config):
"Test config."
Expand Down
13 changes: 8 additions & 5 deletions vumi/transports/smpp/tests/test_smpp.py
Expand Up @@ -221,8 +221,8 @@ def test_delivery_report_for_unknown_message(self):
[warning] = lc.logs
self.assertEqual(warning['message'],
("Failed to retrieve message id for delivery "
"report. Delivery report from sphex "
"discarded.",))
"report. Delivery report from %s "
"discarded." % self.tx_helper.transport_name,))

@inlineCallbacks
def test_throttled_submit_ESME_RTHROTTLED(self):
Expand Down Expand Up @@ -356,7 +356,9 @@ class EsmeToSmscTestCase(VumiTestCase):

@inlineCallbacks
def setUp(self):
self.tx_helper = self.add_helper(TransportHelper(MockSmppTransport))
server_config = {
"transport_name": self.tx_helper.transport_name,
"system_id": "VumiTestSMSC",
"password": "password",
"twisted_endpoint": "tcp:0",
Expand All @@ -372,7 +374,6 @@ def setUp(self):
client_config = server_config.copy()
client_config['twisted_endpoint'] = 'tcp:host=%s:port=%s' % (
host.host, host.port)
self.tx_helper = self.add_helper(TransportHelper(MockSmppTransport))
self.transport = yield self.tx_helper.get_transport(
client_config, start=False)
self.expected_delivery_status = 'delivered'
Expand Down Expand Up @@ -828,7 +829,9 @@ def assert_server_pdu(self, expected, actual):

@inlineCallbacks
def setUp(self):
self.tx_helper = self.add_helper(TransportHelper(MockSmppTxTransport))
self.config = {
"transport_name": self.tx_helper.transport_name,
"system_id": "VumiTestSMSC",
"password": "password",
"host": "localhost",
Expand All @@ -840,7 +843,6 @@ def setUp(self):
yield self.service.startWorker()
self.service.factory.protocol = SmscTestServer
self.config['port'] = self.service.listening.getHost().port
self.tx_helper = self.add_helper(TransportHelper(MockSmppTxTransport))
self.transport = yield self.tx_helper.get_transport(
self.config, start=False)
self.expected_delivery_status = 'delivered'
Expand Down Expand Up @@ -896,7 +898,9 @@ def setUp(self):
from twisted.internet.base import DelayedCall
DelayedCall.debug = True

self.tx_helper = self.add_helper(TransportHelper(MockSmppRxTransport))
self.config = {
"transport_name": self.tx_helper.transport_name,
"system_id": "VumiTestSMSC",
"password": "password",
"host": "localhost",
Expand All @@ -908,7 +912,6 @@ def setUp(self):
yield self.service.startWorker()
self.service.factory.protocol = SmscTestServer
self.config['port'] = self.service.listening.getHost().port
self.tx_helper = self.add_helper(TransportHelper(MockSmppRxTransport))
self.transport = yield self.tx_helper.get_transport(
self.config, start=False)
self.expected_delivery_status = 'delivered'
Expand Down

0 comments on commit 1cfa76a

Please sign in to comment.