コード例 #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')