Exemplo n.º 1
0
 def test_part_not_embedded(self):
     cube = Box()
     cube.exporter('gltf')(
         os.path.join(self.foldername, 'cube.gltf'),
         embed=False,
     )
     self.assertFilesizeNonZero(os.path.join(self.foldername, 'cube.gltf'))
     self.assertFilesizeNonZero(os.path.join(self.foldername, 'cube.bin'))
 def test_add_replace_id(self):
     c = self.get_catalogue()
     c.add('id1', Box(), criteria={'try': 1, 'old': 'foo'})
     c.add('id1', Box(), criteria={'try': 2, 'new': 'bar'}, force=True)
     self.assertEqual(len(c.items.all()), 1)
     item = c.items.all()[0]
     self.assertNotIn('old', item['criteria'])
     self.assertIn('new', item['criteria'])
Exemplo n.º 3
0
    def test_no_connection(self, mock_requests_post):
        part = Box()
        disp_env = display.cqparts_server.CQPartsServerDisplayEnv()
        disp_env.display(part)

        # no error, and no further contact attempted
        mock_requests_post.assert_not_called()
Exemplo n.º 4
0
 def test_box(self):
     obj = Box(length=1, width=2, height=3)
     bb = obj.bounding_box
     self.assertAlmostEqual(
         (bb.xmin, bb.ymin, bb.zmin, bb.xmax, bb.ymax, bb.zmax),
         (-0.5, -1, -1.5, 0.5, 1, 1.5),
         places=1)
    def test_deserialize(self):
        c = self.get_catalogue()
        c.add('id1', Box())
        c.close()

        # re-open catalogue
        c = self.get_catalogue()
        i = c.get_query()
        item = c.find(i.id == 'id1')
        obj = c.deserialize_item(item)
        self.assertIsInstance(obj, Box)
    def test_add_single_item(self):
        c = self.get_catalogue()
        self.assertEqual(len(c.items.all()), 0)

        for (id_str, count) in [('id1', 1), ('id2', 2)]:
            # add box to db, make sure it was added
            c.add(id_str, Box())
            self.assertEqual(len(c.items.all()), count)
            item = c.items.all()[count - 1]
            self.assertEqual(item['id'], id_str)
            self.assertEqual(item['criteria'], {})
            # object serialization tests are out of scope
            self.assertEqual(set(item['obj'].keys()),
                             set(['params', 'class', 'lib']))
Exemplo n.º 7
0
    def test_basic(self, mock_serverobj, mock_webbrowser_open):
        # setup mocks
        mock_server = mock.MagicMock(server_address=('abc', 123))
        mock_serverobj.return_value = mock_server

        part = Box()
        disp_env = display.web.WebDisplayEnv()
        with suppress_stdout_stderr():
            disp_env.display(part)

        # webbrowser.open called
        self.assertEquals(len(mock_webbrowser_open.call_args_list), 1)
        mock_webbrowser_open.assert_called_once_with('http://abc:123/')

        # SocketServer.ThreadingTCPServer.serve_forever called
        mock_server.serve_forever.assert_called_once_with()
Exemplo n.º 8
0
    def test_basic(self, mock_requests_post, mock_requests_get):
        part = Box()
        disp_env = display.cqparts_server.CQPartsServerDisplayEnv()
        disp_env.display(part)

        # status
        mock_requests_get.assert_called_once_with('http://abc:123/status')

        self.assertEqual(len(mock_requests_post.call_args_list), 2)
        # upload
        (args, kwargs) = mock_requests_post.call_args_list[0]
        self.assertEqual(args, ('http://abc:123/upload',))
        self.assertEqual(len(kwargs['files']), 2)
        # notify
        (args, kwargs) = mock_requests_post.call_args_list[1]
        self.assertEqual(args, ('http://abc:123/notify',))
Exemplo n.º 9
0
 def test_bad_env(self):
     disp_env = display.cqparts_server.CQPartsServerDisplayEnv()
     with self.assertRaises(KeyError):
         disp_env.display(Box())
 def test_get(self):
     c = self.get_catalogue()
     c.add('id1', Box())
     i = c.get_query()
     obj = c.get(i.id == 'id1')
     self.assertIsInstance(obj, Box)
Exemplo n.º 11
0
    def test_get_registered(self):
        @codec.register_exporter('abc', Part)
        class Abc(codec.Exporter):
            pass

        self.assertIsInstance(codec.get_exporter(Box(), 'abc'), Abc)
Exemplo n.º 12
0
    def test_get_registered_subtype(self):
        @codec.register_exporter('abc', Component)
        class Abc(codec.Exporter):
            pass

        self.assertIsInstance(codec.get_exporter(Box(), 'abc'), Abc)  # Part
Exemplo n.º 13
0
 def test_bad_part(self):
     p = PartsList()
     with self.assertRaises(ParameterError):
         p.cast([Box(), 1])
 def populate_catalogue(self, catalogue):
     catalogue.add('id1', Box(length=20), criteria={'a': 0, 'b': 1})
     catalogue.add('id2', Box(width=20), criteria={'a': 0, 'b': 2})
     catalogue.add('id3', Box(height=20), criteria={'a': 1, 'b': 2})
Exemplo n.º 15
0
 def test_export(self):
     cube = Box()
     self.assertFilesizeZero(self.filename)
     cube.exporter('stl')(self.filename)
     self.assertFilesizeNonZero(self.filename)
Exemplo n.º 16
0
 def test_export(self):
     cube = Box()
     self.assertEqual(os.stat(self.filename).st_size, 0)
     cube.exporter('amf')(self.filename)
     self.assertGreater(os.stat(self.filename).st_size, 0)
 def test_add_duplicate_id(self):
     c = self.get_catalogue()
     c.add('id1', Box())
     self.assertRaises(ValueError, c.add, 'id1', Box())
Exemplo n.º 18
0
 def test_no_exporter(self):
     with self.assertRaises(TypeError):
         codec.get_exporter(Box(), 'abc')
Exemplo n.º 19
0
 def make_components(self):
     yield {
         'p': Box(),  # good key
         'a.b': Box(),  # key can't contain a '.'
     }
Exemplo n.º 20
0
 def make_components(self):
     yield {
         'p': Box(),  # good key
         1: Box(),  # bad key (must be a string)
     }
Exemplo n.º 21
0
 def make_components(self):
     yield {
         'p': Box(),  # good component
         'x': 123,  # bad component
     }
Exemplo n.º 22
0
 def test_part(self, mock_show):
     part = Box()
     disp_env = display.freecad.FreeCADDisplayEnv()
     disp_env.display(part)
     mock_show.assert_called_once_with(part.local_obj, (192, 192, 192, 0))
Exemplo n.º 23
0
 def test_export(self):
     cube = Box()
     self.assertFilesizeZero(self.filename)
     cube.exporter('svg')(self.filename)
     self.assertGreater(os.stat(self.filename).st_size, 0)
Exemplo n.º 24
0
 def make_components(self):
     return {'p': Box()}
Exemplo n.º 25
0
 def test_partstuple(self):
     p = PartsList()
     (b1, b2) = (Box(), Box())
     v = p.cast((b1, b2))  # tuple
     self.assertIsInstance(v, (list, tuple))
     self.assertEqual([id(x) for x in v], [id(b1), id(b2)])