def show_input(self, template_helper, language, seed):
        translation = _translations.get(language, gettext.NullTranslations())

        rand = Random("{}#{}#{}".format(language, self.get_id(), seed))
        stream = []
        trace = [(split_every_n(data.hex()), dissection)
                 for data, dissection in self._trace]
        trace = list(
            enumerate(
                hide(redact(trace, self._redacted_fields),
                     self._hidden_fields)))
        for i, p in trace:
            stream.append(
                (i, len(p[0]), get_summary(p[1]),
                 'incomplete' if i in self._hidden_fields else 'complete'))
        if self._shuffle:
            s = rand.getstate()
            rand.shuffle(stream)
            rand.setstate(s)
            rand.shuffle(trace)
        return str(
            DisplayableNetworkTraceProblem.get_renderer(
                template_helper).network_trace(
                    self.get_id(),
                    ParsableText.rst(self.gettext(language, self._header)),
                    trace,
                    stream,
                    self._shuffle,
                    type=type,
                    tuple=tuple,
                    gettext=translation.gettext))
Пример #2
0
    def show_page(self, page):
        static_directory = self.app.static_directory
        language = self.user_manager.session_language()

        # Check for the file
        filename = None
        mtime = None
        filepaths = [
            os.path.join(static_directory, page + ".yaml"),
            os.path.join(static_directory, page + "." + language + ".yaml")
        ]

        for filepath in filepaths:
            if os.path.exists(filepath):
                filename = filepath
                mtime = os.stat(filepath).st_mtime

        if not filename:
            raise web.notfound()

        # Check and update cache
        if INGIniousStaticPage.cache.get(filename, (0, None))[0] < mtime:
            with open(filename, "r") as f:
                INGIniousStaticPage.cache[filename] = mtime, custom_yaml.load(
                    f)

        filecontent = INGIniousStaticPage.cache[filename][1]
        title = filecontent["title"]
        content = ParsableText.rst(filecontent["content"],
                                   initial_header_level=2)

        return self.template_helper.get_renderer().static(title, content)
Пример #3
0
 def test_wrong_rst_injection(self):
     rendered = str(
         ParsableText.rst("""
         makefail_
         <script type="text/javascript">alert('Eh, XSS injection!');</script>
         """))
     assert "&lt;script type=&quot;text/javascript&quot;&gt;" in rendered
Пример #4
0
    def test_hidden_until_before_admin(self):
        assert "Something" in ParsableText.rst("""
            .. hidden-until:: 22/05/2102

                Something
            """,
                                               show_everything=True)
Пример #5
0
    def show_page(self, page):
        static_directory = self.app.static_directory
        language = self.user_manager.session_language()

        # Check for the file
        filename = None
        filepaths = [os.path.join(static_directory, page + ".yaml"),
                     os.path.join(static_directory, page + "." + language + ".yaml")]

        for filepath in filepaths:
            if os.path.exists(filepath):
                filename = filepath
                mtime = os.stat(filepath).st_mtime

        if not filename:
            raise web.notfound()

        # Check and update cache
        if INGIniousStaticPage.cache.get(filepath, (0, None))[0] < mtime:
            with open(filename, "r") as f:
                INGIniousStaticPage.cache[filepath] = mtime, custom_yaml.load(f)

        filecontent = INGIniousStaticPage.cache[filepath][1]
        title = filecontent["title"]
        content = ParsableText.rst(filecontent["content"], initial_header_level=2)

        return self.template_helper.get_renderer().static(title, content)
Пример #6
0
 def test_wrong_rst_injection(self):
     rendered = str(ParsableText.rst(
         """
         makefail_
         <script type="text/javascript">alert('Eh, XSS injection!');</script>
         """
     ))
     assert "&lt;script type=&quot;text/javascript&quot;&gt;" in rendered
Пример #7
0
    def show_input(self, template_helper, language, seed):
        translation = _translations.get(language, gettext.NullTranslations())

        rand = Random("{}#{}#{}".format(language, self.get_id(), seed))
        stream = []
        trace = [(split_every_n(data.hex()), dissection) for data, dissection in self._trace]
        trace = list(enumerate(hide(redact(trace, self._redacted_fields), self._hidden_fields)))
        for i, p in trace:
            stream.append((i, len(p[0]), get_summary(p[1]), 'incomplete' if i in self._hidden_fields else 'complete'))
        if self._shuffle:
            s = rand.getstate()
            rand.shuffle(stream)
            rand.setstate(s)
            rand.shuffle(trace)
        return template_helper.render("network_trace.html", template_folder=_template_path, id=self.get_id(),
                                      header=ParsableText.rst(self.gettext(language, self._header)),
                                      trace=trace, stream=stream, shuffle=self._shuffle,
                                      gettext=translation.gettext, decode=decode, print_struct=print_struct,
                                      print_dissection=print_dissection)
Пример #8
0
    def test_parsable_text_once(self):
        def fake_parser(input, language, show_everything):
            fake_parser.count += 1
            return ""

        fake_parser.count = 0
        orig_rst = ParsableText.rst
        ParsableText.rst = fake_parser

        pt = ParsableText("""``test``""", "rst")
        pt.rst = fake_parser

        pt.parse()
        str(pt)
        str(pt)

        ParsableText.rst = orig_rst

        assert fake_parser.count == 1
Пример #9
0
    def test_parsable_text_once(self):
        def fake_parser(string, show_everything=False, translation=None, initial_header_level=3, debug=False):
            fake_parser.count += 1
            return ""

        fake_parser.count = 0
        orig_rst = ParsableText.rst
        ParsableText.rst = fake_parser

        pt = ParsableText("""``test``""", "rst")
        pt.rst = fake_parser

        pt.parse()
        str(pt)
        str(pt)

        ParsableText.rst = orig_rst

        assert fake_parser.count == 1
Пример #10
0
    def test_parsable_text_once(self):
        def fake_parser(input, language, show_everything):
            fake_parser.count += 1
            return ""

        fake_parser.count = 0
        orig_rst = ParsableText.rst
        ParsableText.rst = fake_parser

        pt = ParsableText("""``test``""", "rst")
        pt.rst = fake_parser

        pt.parse()
        str(pt)
        str(pt)

        ParsableText.rst = orig_rst

        assert fake_parser.count == 1
Пример #11
0
 def test_unicode(self):
     rendered = str(ParsableText.rst("""``😁``"""))
     assert "<code" in rendered and "</code>" in rendered and "😁" in rendered
Пример #12
0
 def test_code(self):
     rendered = ParsableText.rst("""``test``""")
     assert "<code" in rendered and "</code>" in rendered
Пример #13
0
    def test_hidden_until_after(self):
        assert "Something" in ParsableText.rst("""
        .. hidden-until:: 22/05/2002

            Something
        """)
Пример #14
0
    def test_hidden_until_before(self):
        assert "Something" not in ParsableText.rst("""
        .. hidden-until:: 22/05/2102

            Something
        """)
Пример #15
0
    def test_hidden_until_after(self):
        assert "Something" in ParsableText.rst("""
        .. hidden-until:: 22/05/2002

            Something
        """)
Пример #16
0
    def test_hidden_until_before(self):
        assert "Something" not in ParsableText.rst("""
        .. hidden-until:: 22/05/2102

            Something
        """)
Пример #17
0
 def test_unicode(self):
     rendered = str(ParsableText.rst("""``😁``"""))
     assert "<code" in rendered and "</code>" in rendered and "😁" in rendered
Пример #18
0
    def test_hidden_until_before_admin(self):
        assert "Something" in ParsableText.rst("""
            .. hidden-until:: 22/05/2102

                Something
            """, show_everything=True)
Пример #19
0
 def test_code(self):
     rendered = ParsableText.rst("""``test``""")
     assert "<code" in rendered and "</code>" in rendered