def test_process_section(self):
     process_function = fudge.Fake()
     process_function = (process_function.expects_call()
             .with_args(['value1', 'value2', 'value3'])
             .returns('fake_return'))
     self.config.process_section('list_section', process_function)
     assert 'fake_return' == self.config.processed_section('list_section')
    def test_kwargs_are_passed_through_to_backend(self):
        random_kwargs = dict([("key_%d" % i, i)
                              for i in range(random.randint(10, 20))])
        random_width = random.randint(1000, 2000)
        random_height = random.randint(1000, 2000)
        embed = object()
        settings = fudge.Fake()
        settings.has_attr(ARMSTRONG_EMBED_VIDEO_WIDTH=random_width,
                          ARMSTRONG_EMBED_VIDEO_HEIGHT=random_height)
        fake = fudge.Fake()
        fake.is_callable().with_args(self, embed, random_width, random_height,
                                     **random_kwargs)

        with fudge.patched_context(helpers, "settings", settings):
            foo = helpers.inject_defaults(fake)
            foo(self, embed, **random_kwargs)
Esempio n. 3
0
    def test_it_builds_basic_product_index_mapping(self):
        attributes = (fudge.Fake('MageAttributes').provides(
            'getAttributesForEntity').with_args(10).returns([
                1, 2
            ]).provides('getLabel').returns('my_attribute1').next_call(
            ).returns('my_attribute2').provides('getMappingType').returns(
                'string').next_call().returns('integer').provides(
                    'isSearchable').returns(True).next_call().returns(False))

        eq_(
            MageIndexMapper(attributes).buildProductIndexMap(), {
                "mappings": {
                    "product": {
                        "properties": {
                            "my_attribute1": {
                                "type": "string",
                                "index": "analyzed"
                            },
                            "my_attribute2": {
                                "type": "integer",
                                "index": "not_analyzed"
                            }
                        }
                    }
                }
            })
Esempio n. 4
0
 def test_get_object_dict_w_keys(self):
     obj = fudge.Fake()
     obj.test = 123
     obj.more = 'yes'
     obj._shh = 'quiet'
     obj_dict = self.translator.get_object_dict(obj, keys=['more'])
     self.assertDictEqual(obj_dict, {'more': 'yes'})
Esempio n. 5
0
 def test_true_if_users_app(self):
     user = mommy.make(User)
     app = mommy.make(PushApplication, user=user)
     mixin = UserOwnsPushAppMixin()
     mixin.request = fudge.Fake().has_attr(user=user)
     mixin.kwargs = {'pk': app.id}
     self.assertTrue(mixin.test_func())
Esempio n. 6
0
 def test_add_requirement(self):
     fake_req = fudge.Fake()
     fake_req.has_attr(name='fake')
     graph = self.graph
     graph.add_requirement(fake_req)
     deps = graph.get_dependencies(fake_req)
     assert deps == []
 def get_payment_stub(self, successful=True, response_reason_text="Foobar"):
     fake_response = self.get_fake_purchase_response(
         successful, response_reason_text)
     fake = fudge.Fake()
     fake.provides("purchase") \
         .returns(fake_response)
     return fake
Esempio n. 8
0
    def test_replace_init(self):
        class custom_object:
            def hello(self):
                return "hi"

        fake = fudge.Fake().provides("__init__").returns(custom_object())
        eq_(fake().hello(), "hi")
    def test_is_valid_simple(self):
        encoded_response = base64.b64encode(test_response)
        res = Response(
            response=encoded_response,
            signature='foo signature',
            )

        def fake_clock():
            return datetime(2004, 12, 05, 9, 18, 45, 462796)

        fake_verifier = fudge.Fake(
            'verifier',
            callable=True,
            )
        fake_verifier.times_called(1)
        fake_verifier.with_args(res._document, 'foo signature')

        fake_verifier.returns(True)

        msg = res.is_valid(
            _clock=fake_clock,
            _verifier=fake_verifier,
            )

        eq(msg, True)
    def test_execute_ok_campaign_id_ok(self, pop3):
        mt = MessageTemplate()
        mt.save()
        c = Campaign()
        c.template = mt
        c.save()
        print(Campaign.objects.all())

        raw_message = [
            1,
            """MIME-Version: 1.0
Received: by 10.229.233.76 with HTTP; Sat, 2 Jul 2011 04:30:31 -0700 (PDT)
Date: Sat, 2 Jul 2011 13:30:31 +0200
Delivered-To: [email protected]
Message-ID: <CAAJL_=kPAJZ=fryb21wBOALp8-XOEL-h9j84s3SjpXYQjN3Z3A@mail.gmail.com>
Subject: =?ISO-8859-1?Q?Dr.=20Pointcarr=E9?=
From: Alain Spineux <*****@*****.**>
To: =?ISO-8859-1?Q?Dr=2E_Pointcarr=E9?= <*****@*****.**>
Content-Type: multipart/alternative; boundary=000e0cd68f223dea3904a714768b
""" % c.pk
        ]
        mailbox = fudge.Fake() \
            .expects('user').returns('response') \
            .expects('pass_').returns('test 1') \
            .expects('retr').returns(raw_message) \
            .provides('dele').returns(True) \
            .expects('quit').returns(True)
        pop3.is_callable().returns(mailbox)
        settings.EMAIL_UNSUBSCRIBE_SECRET_KEY = ''
        settings.MASSMAIL_UNSUBSCRIBE_MAILBOX_POP_SERVER = ''
        settings.MASSMAIL_UNSUBSCRIBE_EMAIL = ''
        settings.MASSMAIL_UNSUBSCRIBE_MAILBOX_PASSWORD = '******'
        self.command.handle()
    def test_execute_bad_signature(self, pop3):
        raw_message = [
            1, """MIME-Version: 1.0
Received: by 10.229.233.76 with HTTP; Sat, 2 Jul 2011 04:30:31 -0700 (PDT)
Date: Sat, 2 Jul 2011 13:30:31 +0200
Delivered-To: [email protected]
Message-ID: <CAAJL_=kPAJZ=fryb21wBOALp8-XOEL-h9j84s3SjpXYQjN3Z3A@mail.gmail.com>
Subject: =?ISO-8859-1?Q?Dr.=20Pointcarr=E9?=
From: Alain Spineux <*****@*****.**>
To: =?ISO-8859-1?Q?Dr=2E_Pointcarr=E9?= <*****@*****.**>
Content-Type: multipart/alternative; boundary=000e0cd68f223dea3904a714768b
"""
        ]
        mailbox = fudge.Fake() \
            .expects('user').returns('response') \
            .expects('pass_').returns('test 1') \
            .expects('retr').returns(raw_message) \
            .provides('dele').returns(True) \
            .expects('quit').returns(True)
        pop3.is_callable().returns(mailbox)
        settings.EMAIL_UNSUBSCRIBE_SECRET_KEY = ''
        settings.MASSMAIL_UNSUBSCRIBE_MAILBOX_POP_SERVER = ''
        settings.MASSMAIL_UNSUBSCRIBE_EMAIL = ''
        settings.MASSMAIL_UNSUBSCRIBE_MAILBOX_PASSWORD = '******'
        self.command.handle()
Esempio n. 12
0
            def check_expectation(self, setter, value, error=None, exclude=None):
                """
                    Call setter with a single keyword argument set to value for each keyword argument accepted
                    If error is specified, then we check that ConfigurationError with error as a message is risen
                    Otherwise we check value was set on the options
                """
                if exclude is None:
                    exclude = []
                requirements = self.specification[setter]
                if exclude:
                    requirements = [requirement for requirement in requirements if requirement not in exclude]

                old = fudge.Fake("old")
                options = Options()
                for requirement in requirements:
                    kwargs = {requirement:value}
                    setattr(options, requirement, old)

                    caller = lambda : setter(options, **kwargs)
                    if error:
                        caller |should| throw(ConfigurationError, message=error % {'name' : requirement})
                        getattr(options, requirement) |should| be(old)
                    else:
                        caller()
                        getattr(options, requirement) |should| be(value)
Esempio n. 13
0
 def test_get_by_url_doesnt_create_bid(self):
     url = 'https://github.com/codesy/codesy/issues/419'
     self.view.request = (fudge.Fake().has_attr(GET={
         'url': url
     }).has_attr(user=self.user1))
     context = self.view.get_context_data()
     self.assertIsNone(context['bid'])
Esempio n. 14
0
def setUpPackage(self):
    # mock stripe Customer
    mock_id = fudge.Fake().has_attr(id='dammit')
    mock_customer = (fudge.Fake().provides('create').returns(mock_id))
    self.patch_stripe = fudge.patch_object('payments.utils.stripe', 'Customer',
                                           mock_customer)

    # mock stripe Event
    evt_resp = json.loads(payment_created)
    mock_event = (fudge.Fake().provides('retrieve').has_attr(
        verified=True).returns(evt_resp))
    self.patch_stripe = fudge.patch_object('payments.utils.stripe', 'Event',
                                           mock_event)

    # mock stripe account_id
    setup_mock_account(verification=account_verified)
    def test_can_communicate_with_real_authorize_backend_for_recurring(self):
        onetime_purchase = fudge.Fake().is_callable().returns({"status": True})

        class TestableApi(arb.Api):
            def __init__(self, *args, **kwargs):
                kwargs["is_test"] = True
                super(TestableApi, self).__init__(*args, **kwargs)

            def create_subscription(self, **kwargs):
                kwargs["test_request"] = u"TRUE"
                return super(TestableApi, self).create_subscription(**kwargs)

        donation, donation_form = self.random_donation_and_form
        donation_form.data["card_number"] = u"4222222222222"  # Set to test CC
        donation.donation_type = self.random_monthly_type
        donation.amount = 1
        backend = backends.AuthorizeNetBackend(recurring_api_class=TestableApi,
                                               settings=self.test_settings)
        with fudge.patched_context(backend, "onetime_purchase",
                                   onetime_purchase):
            result = backend.purchase(donation, donation_form)
        try:
            self.assertTrue(result["status"])
        except AssertionError:
            # This is a known issue where Authorize.net randomly returns
            # a bad response in test mode.  Yup, you read that correctly.
            # A system designed to process your money can't actually figure
            # out how to run a test server in a reliable wayself.
            self.assertEqual(result["reason"],
                             u"(TESTMODE) The credit card number is invalid.",
                             msg="Authorize.net really has failed us")
Esempio n. 16
0
    def test_delete_known_track(self):
        resp = self.client.get(reverse('playlists_landing_page'))
        context = resp.context[0]
        tracks = [t for t in context['playlist_events']]
        self.assertEquals(tracks[0].artist_name, "Steely Dan")

        def inspect_request(r):
            self.assertEqual(
                r.get_full_url(),
                'http://testapi/playlist/delete/%s' % self.track.key())
            self.assertEqual(r.http_method, 'DELETE')
            return True

        fake_urlopen = (fudge.Fake('urlopen', expect_call=True).with_args(
            arg.passes_test(inspect_request)))

        fake_response = (fake_urlopen.returns_fake().has_attr(
            code='200').provides('read').returns("<service response>"))

        with fudge.patched_context(playlists.tasks.urllib2, "urlopen",
                                   fake_urlopen):
            resp = self.client.get(
                reverse('playlists_delete_event', args=[self.track.key()]))

        self.assertRedirects(resp, reverse('playlists_landing_page'))
        # simulate the redirect:
        resp = self.client.get(reverse('playlists_landing_page'))
        context = resp.context[0]
        tracks = [t for t in context['playlist_events']]
        self.assertEquals(tracks, [])
    def test_adds_recurring_response_to_return_on_failure(self):
        random_return = random.randint(1000, 2000)
        donation, donation_form = self.random_donation_and_form
        donation.donation_type = self.random_monthly_type

        recurring_purchase = (
            fudge.Fake().is_callable().returns(random_return))
        onetime_purchase = (fudge.Fake().is_callable().returns(
            {"status": True}))

        backend = backends.AuthorizeNetBackend()
        with stub_recurring_purchase(backend, recurring_purchase):
            with stub_onetime_purchase(backend, onetime_purchase):
                result = backend.purchase(donation, donation_form)
        self.assertTrue("recurring_response" in result)
        self.assertEqual(result["recurring_response"], random_return)
Esempio n. 18
0
    def test_create_not_latin_chars(self):
        def inspect_request(r):
            # NOTE: due to URL fetching, you can only raise
            # AssertionError here
            self.assertEqual(
                r.get_full_url(),
                'http://__dummylive365service__/cgi-bin/add_song.cgi')
            qs = dict(cgi.parse_qsl(r.data))
            self.assertEqual(qs['member_name'], "dummy_member")
            self.assertEqual(qs['password'], "dummy_password")
            self.assertEqual(qs['seconds'], '30')
            # c should be replaced because latin-1 can't encode that and Live365 likes latin-1
            self.assertEqual(qs['title'], 'Ivan Krsti song')
            self.assertEqual(qs['album'], 'Ivan Krsti album')
            self.assertEqual(qs['artist'], 'Ivan Krsti')
            return True

        fake_urlopen = (fudge.Fake('urlopen', expect_call=True).with_args(
            arg.passes_test(inspect_request)))

        fake_response = (fake_urlopen.returns_fake().has_attr(
            code='200').provides('read').returns("<service response>"))

        with fudge.patched_context(playlists.tasks.urllib2, "urlopen",
                                   fake_urlopen):
            resp = self.client.post(reverse('playlists.send_track_to_live365'),
                                    {'id': self.track.key()})

        fudge.verify()
    def testCanAddALineItem(self):
        fakeLineItem = (fudge.Fake('LineItem').has_attr(item_id="foo",
                                                        quantity=0))

        fixture = shop.Shopper(MockCart())
        self.assertEqual('foo', fixture.add(fakeLineItem))
        self.failUnless(fixture.contains("foo"))
Esempio n. 20
0
def test_config_util_initialisation():
    '''Test ConfigUtil initialises properly'''
    template = fudge.Fake("template")
    config_util = ConfigUtil(template)

    config_util.values |should| equal_to({})
    config_util.template |should| be(template)
Esempio n. 21
0
    def test_get_object_not_exists(self):
        self.translator.model = fudge.Fake().is_a_stub()
        self.translator.model.expects_call().returns('initialized object')

        obj = self.translator.get_object(stuff='things')

        self.assertEqual(obj, 'initialized object')
Esempio n. 22
0
 def inner(self, *args, **kwargs):
     donation, form = self.random_donation_and_form
     fake_save = fudge.Fake().is_callable().returns(donation)
     setattr(form, "save", fake_save)
     v = self.get_post_view(confirmed=confirmed)
     response = v.form_is_valid(form)
     func(self, response)
Esempio n. 23
0
 def setUp(self):
     self.user = mommy.make(User)
     self.app = mommy.make(PushApplication, user=self.user)
     self.request = fudge.Fake().has_attr(user=self.user,
                                          POST={"signed_token": True})
     self.view = Validation()
     self.view.request = self.request
Esempio n. 24
0
    def test_status_can_be_cleared(self):
        bot = Bot('user@server', 'pass')
        bot.logs['first'] = Log('/tmp/jabber_test/first.log')
        bot.logs['secnd'] = Log('/tmp/jabber_test/secnd.log')
        bot.status = lambda: ('', 'Ok')
        bot.client = fudge.Fake('client').is_a_stub()

        filename1 = '/tmp/jabber_test/first.log'
        log1 = Log('first')

        self.set_date('2011-09-21 01:00:03')

        open(filename1,
             'w').write('2011-09-21 01:00:01,854 - first - INFO - Line 01\n')

        # Status should be 'Ok'
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:03 Ok')
        self.assertEquals(bot.status_show, '')

        # Error will change status
        self.set_date('2011-09-21 01:00:05')
        open(filename1,
             'a').write('2011-09-21 01:00:04,854 - first - ERROR - Error 01\n')
        bot.cycle()
        self.assertEquals(bot.status_msg,
                          '2011-09-21 01:00:04 first: Error 01')
        self.assertEquals(bot.status_show, 'dnd')

        bot.clear()
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:03 Ok')
        self.assertEquals(bot.status_show, '')
Esempio n. 25
0
 def test_adds_app_to_context_data(self):
     user = mommy.make(User)
     app = mommy.make(PushApplication, user=user)
     mixin = UserOwnsPushAppMixin()
     mixin.request = fudge.Fake().has_attr(user=user)
     context = mixin.get_context_data(pk=app.id)
     self.assertEqual(app, context['app'])
Esempio n. 26
0
    def test_status_show_time_when_status_was_last_changed(self):
        bot = Bot('user@server', 'pass')
        bot.status = lambda: ('', 'Ok')
        bot.client = fudge.Fake('client').is_a_stub()

        self.set_date('2011-09-21 01:00:03')

        # Status should be 'Ok'
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:03 Ok')
        self.assertEquals(bot.status_show, '')

        # Status change should reflect in bot's status, with new time
        self.set_date('2011-09-21 01:00:04')
        bot.status = lambda: ('away', 'Other status')
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:04 Other status')
        self.assertEquals(bot.status_show, 'away')

        # New time won't change status time if message is not changed
        self.set_date('2011-09-21 01:00:05')
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:04 Other status')
        self.assertEquals(bot.status_show, 'away')

        # Status will be changed now
        self.set_date('2011-09-21 01:00:06')
        bot.status = lambda: ('away', 'New status')
        bot.cycle()
        self.assertEquals(bot.status_msg, '2011-09-21 01:00:06 New status')
        self.assertEquals(bot.status_show, 'away')
Esempio n. 27
0
 def test_shortname_default(self):
     r = remote.Remote(
         name='*****@*****.**',
         ssh=fudge.Fake('SSHConnection'),
         )
     assert r.shortname == 'xyzzy'
     assert str(r) == '*****@*****.**'
Esempio n. 28
0
def test_shortname_default():
    r = remote.Remote(
        name='*****@*****.**',
        ssh=fudge.Fake('SSHConnection'),
    )
    eq(r.shortname, '*****@*****.**')
    eq(str(r), '*****@*****.**')
Esempio n. 29
0
 def test_runner_lists_commands(self):
     fake_registry = fudge.Fake()
     (fake_registry.expects('list_commands')
             .returns(['command1', 'command2']))
     self.runner.set_registry(fake_registry)
     commands = self.runner.list_commands()
     assert commands == ['command1', 'command2']
Esempio n. 30
0
    def test_pre_save_sets_user_to_request_user(self):
        user, url, issue, claim = _make_test_claim()
        self.viewset.request = fudge.Fake().has_attr(user=user)

        self.viewset.pre_save(claim)

        self.assertEqual(claim.user, user)