Ejemplo n.º 1
0
    def __init__(
        self,
        config=None,
        bin=None,
        manager=None,
        router=None,
        jinja=None,
    ):
        if config is None:
            config = {}
        if manager is None:
            manager = Manager()
        if bin is None:
            bin = assets.Bin(manager=manager)
        if router is None:
            router = Router(mapper=SimpleMapper())

        self._response_callbacks = defaultdict(list)

        self.bin = bin
        self.config = config
        self.manager = manager
        self.router = router

        self.bind_bin(bin)
        if jinja is not None:
            self.bind_jinja_environment(jinja)
Ejemplo n.º 2
0
    def setUp(self):
        self.request = mock.Mock()
        self.fn = mock.Mock(__name__="a_view")

        self.request_manager = Manager()
        self.request_manager.request_started(self.request)

        self.bin = assets.Bin(manager=self.request_manager)
Ejemplo n.º 3
0
    def test_updating_bins_preserves_which_providers_need_the_request(self):
        bin = assets.Bin(self.request_manager)
        iron = mock.Mock()
        bin.provides("iron", needs_request=True)(iron)

        self.bin.update(bin)

        self.bin.needs(["iron"])(self.fn)(self.request)
        iron.assert_called_once_with(self.request)
Ejemplo n.º 4
0
    def test_update(self):
        iron, wine = mock.Mock(), mock.Mock()

        self.bin.provides("iron")(iron)
        self.bin.provides("wine")(wine)

        gold = mock.Mock()
        bin = assets.Bin(self.request_manager, globals={"gold": gold})

        self.bin.update(bin)

        self.assertEqual(self.bin.assets, {"iron", "wine", "gold"})
Ejemplo n.º 5
0
 def test_it_can_bind_to_other_bins(self):
     app = core.Application()
     bin = assets.Bin(manager=app.manager)
     app.bind_bin(bin)
     self.assertSubdict(
         [
             ("app", app),
             ("config", app.config),
             ("manager", app.manager),
             ("router", app.router),
         ],
         bin.globals,
     )
Ejemplo n.º 6
0
 def test_it_can_bind_to_other_bins(self):
     app = core.Application()
     bin = app.bound_bin(assets.Bin())
     self.assertEqual(
         (
             bin.provide("app"),
             bin.provide("config"),
             bin.provide("manager"),
             bin.provide("router"),
         ),
         (
             app,
             app.config,
             app.manager,
             app.router,
         ),
     )
Ejemplo n.º 7
0
 def test_it_provides_assets(self):
     bin = assets.Bin().add(twelve=lambda bin: 12)
     self.assertEqual(bin.provide("twelve"), 12)
Ejemplo n.º 8
0
 def test_repr(self):
     self.assertEqual(
         repr(assets.Bin().add(zero=int).add(empty=str)),
         "<Bin: {'empty', 'zero'}>",
     )
Ejemplo n.º 9
0
 def test_hash(self):
     self.assertIn(
         assets.Bin().add(zero=int),
         {assets.Bin().add(zero=int)},
     )
Ejemplo n.º 10
0
 def test_no_such_asset(self):
     with self.assertRaises(assets.NoSuchAsset) as e:
         assets.Bin().provide("twelve")
     self.assertEqual(str(e.exception), "twelve")
Ejemplo n.º 11
0
 def test_with_globals(self):
     foo, bar = object(), object()
     bin = assets.Bin().with_globals(foo=foo, bar=bar)
     self.assertEqual((bin.provide("foo"), bin.provide("bar")), (foo, bar))
Ejemplo n.º 12
0
 def __attrs_post_init__(self):
     if self.bin is None:
         self.bin = assets.Bin().add(manager=self.manager)
     self.bin = self.bound_bin(self.bin)
     if self._jinja is not None:
         self.bind_jinja_environment(self._jinja)