def test_closed(self):
     from pyramid_sockjs import Session, STATE_CLOSED
     session = Session('id')
     session.open()
     session.closed()
     self.assertTrue(session.expired)
     self.assertEqual(session.state, STATE_CLOSED)
 def test_closed(self):
     from pyramid_sockjs import Session, STATE_CLOSED
     session = Session('id')
     session.open()
     session.closed()
     self.assertTrue(session.expired)
     self.assertEqual(session.state, STATE_CLOSED)
    def test_open_on_open_exception(self):
        from pyramid_sockjs import Session, STATE_OPEN
        class TestSession(Session):
            def on_open(self):
                raise Exception()

        session = TestSession('id')
        session.open()
        self.assertEqual(session.state, STATE_OPEN)
    def test_message(self):
        from pyramid_sockjs import Session
        session = Session('id')
        session.open()

        self.now = self.now + timedelta(hours=1)

        session.message('message')

        self.assertEqual(session.expires, self.now + session.timeout)
    def test_message(self):
        from pyramid_sockjs import Session
        session = Session('id')
        session.open()

        self.now = self.now + timedelta(hours=1)

        session.message('message')

        self.assertEqual(session.expires, self.now + session.timeout)
    def test_open_on_open_exception(self):
        from pyramid_sockjs import Session, STATE_OPEN

        class TestSession(Session):
            def on_open(self):
                raise Exception()

        session = TestSession('id')
        session.open()
        self.assertEqual(session.state, STATE_OPEN)
    def test_closed_event(self):
        from pyramid_sockjs import Session

        closed = []
        class TestSession(Session):
            def on_closed(self):
                closed.append(True)

        session = TestSession('id')
        session.open()
        session.closed()
        self.assertTrue(closed[0])
    def test_open_on_open(self):
        from pyramid_sockjs import Session

        opened = []

        class TestSession(Session):
            def on_open(self):
                opened.append(True)

        session = TestSession('id')
        session.open()

        self.assertTrue(opened[0])
    def test_open_on_open(self):
        from pyramid_sockjs import Session

        opened = []

        class TestSession(Session):
            def on_open(self):
                opened.append(True)

        session = TestSession('id')
        session.open()

        self.assertTrue(opened[0])
    def test_closed_event(self):
        from pyramid_sockjs import Session

        closed = []

        class TestSession(Session):
            def on_closed(self):
                closed.append(True)

        session = TestSession('id')
        session.open()
        session.closed()
        self.assertTrue(closed[0])
    def test_message_on_message(self):
        from pyramid_sockjs import Session

        messages = []

        class TestSession(Session):
            def on_message(self, msg):
                messages.append(msg)

        session = TestSession('id')
        session.open()
        session.message('message')

        self.assertEqual(messages[0], 'message')
    def test_message_on_message(self):
        from pyramid_sockjs import Session

        messages = []

        class TestSession(Session):
            def on_message(self, msg):
                messages.append(msg)

        session = TestSession('id')
        session.open()
        session.message('message')

        self.assertEqual(messages[0], 'message')
    def test_gc_expire(self):
        from pyramid_sockjs import STATE_CLOSED
        Session, sm = self.make_one()

        session = Session('id')
        session.open()

        sm._add(session)

        self.now = session.expires + timedelta(seconds=10)

        sm._gc()
        self.assertNotIn('id', sm)
        self.assertTrue(session.expired)
        self.assertEqual(session.state, STATE_CLOSED)
    def test_gc_expire(self):
        from pyramid_sockjs import STATE_CLOSED
        Session, sm = self.make_one()

        session = Session('id')
        session.open()

        sm._add(session)

        self.now = session.expires + timedelta(seconds=10)

        sm._gc()
        self.assertNotIn('id', sm)
        self.assertTrue(session.expired)
        self.assertEqual(session.state, STATE_CLOSED)
    def test_close_on_message_exception(self):
        from pyramid_sockjs import Session
        class TestSession(Session):
            def on_close(self):
                raise Exception()

        session = TestSession('id')
        session.open()

        err = None
        try:
            session.close()
        except Exception as exc: # pragma: no cover
            err = exc

        self.assertIsNone(err)
    def test_close_on_message_exception(self):
        from pyramid_sockjs import Session

        class TestSession(Session):
            def on_close(self):
                raise Exception()

        session = TestSession('id')
        session.open()

        err = None
        try:
            session.close()
        except Exception as exc:  # pragma: no cover
            err = exc

        self.assertIsNone(err)
    def test_closed_on_message_exception(self):
        from pyramid_sockjs import Session, STATE_CLOSED
        class TestSession(Session):
            def on_closed(self):
                raise Exception()

        session = TestSession('id')
        session.open()

        err = None
        try:
            session.closed()
        except Exception as exc: # pragma: no cover
            err = exc

        self.assertIsNone(err)
        self.assertEqual(session.state, STATE_CLOSED)
    def test_closed_on_message_exception(self):
        from pyramid_sockjs import Session, STATE_CLOSED

        class TestSession(Session):
            def on_closed(self):
                raise Exception()

        session = TestSession('id')
        session.open()

        err = None
        try:
            session.closed()
        except Exception as exc:  # pragma: no cover
            err = exc

        self.assertIsNone(err)
        self.assertEqual(session.state, STATE_CLOSED)
 def test_open(self):
     from pyramid_sockjs import Session, STATE_OPEN
     session = Session('id')
     session.open()
     self.assertEqual(session.state, STATE_OPEN)
 def test_open(self):
     from pyramid_sockjs import Session, STATE_OPEN
     session = Session('id')
     session.open()
     self.assertEqual(session.state, STATE_OPEN)