Пример #1
0
 def test_encode_returns_object_with_byte_properties(self):
     transfer = server.Transfer('1', '/User/', '1.1.1.1')
     encoded = transfer.encode(b'')
     self.assertTrue(isinstance(encoded['url'], str))
     self.assertTrue(isinstance(encoded['transferId'], str))
     self.assertTrue(isinstance(encoded['filepath'], str))
     self.assertTrue(isinstance(encoded['userIp'], str))
Пример #2
0
 def test_encode_returns_object_with_correct_properties(self):
     transfer = server.Transfer('1', '/User/', '1.1.1.1')
     encoded = transfer.encode(b'')
     self.assertTrue(encoded['url'] is not None)
     self.assertTrue(encoded['transferId'] is not None)
     self.assertTrue(encoded['filepath'] is not None)
     self.assertTrue(encoded['userIp'] is not None)
Пример #3
0
 def test_toJsonReturnsAllProperties(self):
     transfer = server.Transfer('1', '/User/', '1.1.1.1')
     url = 'json.com'
     result = transfer.toJson(url)
     expected = '{"filepath": "/User/", "transferId": "1", '\
                '"url": "json.com/1/", "userIp": "1.1.1.1"}'
     self.assertEqual(result, expected)
Пример #4
0
    def test_get_all_peers_returns_peer_in_list(self):

        transfer = server.Transfer('1', '.', '1.1.1.1')
        rootUrl = b'piazza.org'
        mockOb = MagicMock(server.OutboundRequests)
        mockOb.all.return_value = iter([transfer])

        app = server.OutboundRequestEndpoint(outboundRequests=mockOb,
                                             getFileNames=None,
                                             submitFileRequest=None,
                                             rootUrl=rootUrl).app
        kr = KleinResource(app)

        request = requestMock('/', 'GET')
        d = _render(kr, request)

        self.assertFired(d)
        self.assertTrue(mockOb.all.called)

        expected = utils.sortedDump({
            "files": [{
                "url": "piazza.org/1/",
                "transferId": "1",
                "userIp": "1.1.1.1",
                "filepath": "."
            }]
        })
        self.assertEqual(expected, request.getWrittenData())
Пример #5
0
    def test_requestTransfer_returns_transfer(self):
        """
        This function finishes up the new request. Test that it returns
        the transfer object it will send to the target user to the sending
        user as well.

        As of right now, this contains the file names and the root url.
        """
        fakeResults = utils.Paths(directories=[b'plop'],
                                  filenames=[b'/plop', b'/plop/foo'])

        def fakeSubmitter(*args):
            return

        app = server.OutboundRequestEndpoint(outboundRequests=None,
                                             getFileNames=None,
                                             submitFileRequest=fakeSubmitter,
                                             rootUrl='')

        transfer = server.Transfer('1', '.', '1.1.1.1')
        response = app.requestTransfer((
            fakeResults,
            transfer,
        ))
        expected = '{"directories": ["plop"], "filenames": ' \
                   '["/plop", "/plop/foo"], "transfer": "/1/"}'

        self.assertEqual(expected, response)
Пример #6
0
 def test_add_outbound_adds_new_transfer(self):
     mockOb = MagicMock(server.OutboundRequests)
     app = server.OutboundRequestEndpoint(outboundRequests=mockOb,
                                          getFileNames=None,
                                          submitFileRequest=None,
                                          rootUrl=None)
     app.addOutbound(server.Transfer('1', '.', '1.1.1.1'))
     self.assertTrue(mockOb.add.called)
Пример #7
0
    def test_to_json_encodes_unicode_properties(self):
        transfer = server.Transfer('1', u'/Users/' + u'\u262D', '1.1.1.1')
        result = transfer.toJson("")
        self.assertTrue(isinstance(result, str))

        expected = b'{"filepath": "/Users/\\u262d", "transferId": "1", '\
                   b'"url": "/1/", "userIp": "1.1.1.1"}'
        self.assertEqual(result, expected)
Пример #8
0
 def test_add_outbound_returns_transfer(self):
     mockOb = MagicMock(server.OutboundRequests)
     app = server.OutboundRequestEndpoint(outboundRequests=mockOb,
                                          getFileNames=None,
                                          submitFileRequest=None,
                                          rootUrl=None)
     transfer = server.Transfer('1', '.', '1.1.1.1')
     result = app.addOutbound(transfer)
     self.assertEqual(result, transfer)
Пример #9
0
    def test_with_single_filename_returns_single_file(self):
        fpath = filepath.FilePath(self.mktemp())
        contents = b'im the contents of a file :-)'
        fpath.setContent(contents)

        transfer = server.Transfer('1', fpath.path, '1.1.1.1')
        mockOb = MagicMock(server.OutboundRequests)
        mockOb.get.return_value = transfer

        outbound = mockOb
        app = server.FileEndpoint(outbound).app
        kr = KleinResource(app)

        url = u'/' + transfer.transferId + u'/' + fpath.basename()
        request = requestMock(url.encode('ascii', 'ignore'), 'GET')

        d = _render(kr, request)

        self.assertFired(d)
        self.assertTrue(mockOb.get.called)
        self.assertIn(contents, request.getWrittenData())
Пример #10
0
    def test_with_existing_file_request_returns_directory_listing(self):

        # uses the current directory where tests are run
        # this is all that is needed as no operations are performed
        # that change the files in the pwd.
        transfer = server.Transfer('1', '.', '1.1.1.1')
        mockOb = MagicMock(server.OutboundRequests)
        mockOb.get.return_value = transfer

        outbound = mockOb
        app = server.FileEndpoint(outbound).app
        kr = KleinResource(app)

        url = u'/' + transfer.transferId + u'/'
        request = requestMock(url.encode('ascii', 'ignore'), 'GET')

        d = _render(kr, request)

        self.assertFired(d)
        self.assertTrue(mockOb.get.called)
        self.assertIn(b'Directory listing', request.getWrittenData())
Пример #11
0
    def test_get_filenames(self):
        """
        This only tests that given a transfer, getFilenames returns that
        transfer and a set of filenames.
        """
        fakeResults = [b'/plop', b'/plop/foo']

        def fake(*args):
            return fakeResults

        app = server.OutboundRequestEndpoint(outboundRequests=None,
                                             getFileNames=fake,
                                             submitFileRequest=None,
                                             rootUrl=None)
        transfer = server.Transfer('1', '.', '1.1.1.1')
        deferred = app.getFilenames(transfer)

        def check(result):
            self.assertTrue(result[0], fakeResults)
            self.assertTrue(result[1], transfer)

        return deferred
Пример #12
0
    def setUp(self):
        self.transfer = server.Transfer('1', '.', '1.1.1.1')
        self.paths = utils.Paths(directories=[], filenames=[b'plop.txt'])
        self.patcher = patch(
            'teiler.server.OutboundRequestEndpoint.getFilenames',
            return_value=(
                self.paths,
                self.transfer,
            ))
        self.patcher.start()

        def fakeSubmitter(*args):
            return

        self.outbound = server.OutboundRequests()
        self.endpoint = server.OutboundRequestEndpoint(
            outboundRequests=self.outbound,
            # getFilenames uses getFileNames. This will be patched; so the
            # method passed in will not be used.
            getFileNames=None,
            submitFileRequest=fakeSubmitter,
            rootUrl='')

        self.kr = KleinResource(self.endpoint.app)
Пример #13
0
 def test_filename_bytes_returns_bytes_from_unicode_filename(self):
     asUnicode = unicode(b"/Users/\u262D")
     transfer = server.Transfer('1', asUnicode, '1.1.1.1')
     # what should this do?
     self.assertEqual(b'/Users/\u262D', transfer.filenameBytes())
Пример #14
0
 def test_byte_properties_encode_to_unicode(self):
     transfer = server.Transfer(b'1', b'/User/', b'1.1.1.1')
     self.assertEqual(transfer.transferId, u'1')
     self.assertEqual(transfer.filepath, u'/User/')
     self.assertEqual(transfer.userIp, u'1.1.1.1')
Пример #15
0
 def test_to_json_returns_bytes_with_unicode_properties(self):
     transfer = server.Transfer('1', u'/Users/' + u'\u262D', '1.1.1.1')
     result = transfer.toJson("")
     self.assertTrue(isinstance(result, str))
Пример #16
0
 def test_to_json_returns_bytes(self):
     transfer = server.Transfer('1', '/User/', '1.1.1.1')
     url = 'json.com'
     result = transfer.toJson(url)
     self.assertTrue(isinstance(result, str))
Пример #17
0
 def test_no_literal_properties_encode_to_unicode(self):
     transfer = server.Transfer('1', '/User/', '1.1.1.1')
     self.assertEqual(transfer.transferId, u'1')
     self.assertEqual(transfer.filepath, u'/User/')
     self.assertEqual(transfer.userIp, u'1.1.1.1')
Пример #18
0
 def test_filename_bytes_returns_bytes_from_byte_filename(self):
     transfer = server.Transfer('1', b'/Users/\u262D', '1.1.1.1')
     self.assertEqual(b'/Users/\u262D', transfer.filenameBytes())
Пример #19
0
 def test_url_returns_bytes(self):
     transfer = server.Transfer('1', b'plop', '1.1.1.1')
     self.assertEqual(b'json.com/1/', transfer.url(b'json.com'))
Пример #20
0
 def setUp(self):
     self.transfer = server.Transfer('1', '/User/', '1.1.1.1')