from mock import patch
from unittest import TestCase

from crossbuild import (
    main,
)


class CrossBuildTestCase(TestCase):

    def test_main_setup(self):
        with patch('crossbuild.setup_cross_building') as mock:
            main(['-d', '-v', 'setup', '--build-dir', './foo'])
        args, kwargs = mock.call_args
        self.assertEqual(('./foo', ), args)
        self.assertEqual({'dry_run': True, 'verbose': True}, kwargs)

    def test_main_win_client(self):
        with patch('crossbuild.build_win_client') as mock:
            main(['win-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

from mock import patch
from unittest import TestCase

from crossbuild import (
    main,
)


class CrossBuildTestCase(TestCase):

    def test_main_setup(self):
        with patch('crossbuild.setup_cross_building') as mock:
            main(['-d', '-v', 'setup', '--build-dir', './foo'])
        args, kwargs = mock.call_args
        self.assertEqual(('./foo', ), args)
        self.assertEqual({'dry_run': True, 'verbose': True}, kwargs)

    def test_main_osx_clientt(self):
        with patch('crossbuild.build_osx_client') as mock:
            main(['osx-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

    def test_main_win_client(self):
        with patch('crossbuild.build_win_client') as mock:
            main(['win-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

    def test_main_win_agent(self):
        with patch('crossbuild.build_win_agent') as mock:
            main(['win-agent', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

Add main osx-client command test.
Add main osx-client command test.
  from mock import patch
  from unittest import TestCase
  
  from crossbuild import (
      main,
  )
  
  
  class CrossBuildTestCase(TestCase):
  
      def test_main_setup(self):
          with patch('crossbuild.setup_cross_building') as mock:
              main(['-d', '-v', 'setup', '--build-dir', './foo'])
          args, kwargs = mock.call_args
          self.assertEqual(('./foo', ), args)
          self.assertEqual({'dry_run': True, 'verbose': True}, kwargs)
  
+     def test_main_osx_clientt(self):
+         with patch('crossbuild.build_osx_client') as mock:
+             main(['osx-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
+         args, kwargs = mock.call_args
+         self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
+         self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)
+ 
      def test_main_win_client(self):
          with patch('crossbuild.build_win_client') as mock:
              main(['win-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
          args, kwargs = mock.call_args
          self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
          self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)
  
+     def test_main_win_agent(self):
+         with patch('crossbuild.build_win_agent') as mock:
+             main(['win-agent', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
+         args, kwargs = mock.call_args
+         self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
+         self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)
+ 
Add main osx-client command test.
## Code Before:
from mock import patch
from unittest import TestCase

from crossbuild import (
    main,
)


class CrossBuildTestCase(TestCase):

    def test_main_setup(self):
        with patch('crossbuild.setup_cross_building') as mock:
            main(['-d', '-v', 'setup', '--build-dir', './foo'])
        args, kwargs = mock.call_args
        self.assertEqual(('./foo', ), args)
        self.assertEqual({'dry_run': True, 'verbose': True}, kwargs)

    def test_main_win_client(self):
        with patch('crossbuild.build_win_client') as mock:
            main(['win-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

## Instruction:
Add main osx-client command test.
## Code After:
from mock import patch
from unittest import TestCase

from crossbuild import (
    main,
)


class CrossBuildTestCase(TestCase):

    def test_main_setup(self):
        with patch('crossbuild.setup_cross_building') as mock:
            main(['-d', '-v', 'setup', '--build-dir', './foo'])
        args, kwargs = mock.call_args
        self.assertEqual(('./foo', ), args)
        self.assertEqual({'dry_run': True, 'verbose': True}, kwargs)

    def test_main_osx_clientt(self):
        with patch('crossbuild.build_osx_client') as mock:
            main(['osx-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

    def test_main_win_client(self):
        with patch('crossbuild.build_win_client') as mock:
            main(['win-client', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)

    def test_main_win_agent(self):
        with patch('crossbuild.build_win_agent') as mock:
            main(['win-agent', '--build-dir', './foo', 'bar.1.2.3.tar.gz'])
        args, kwargs = mock.call_args
        self.assertEqual(('bar.1.2.3.tar.gz', './foo'), args)
        self.assertEqual({'dry_run': False, 'verbose': False}, kwargs)
