From a5fefeb221d3fa1c40a57fd3dba83a113709d33b Mon Sep 17 00:00:00 2001 From: Joe Love Date: Wed, 20 Feb 2019 10:50:03 +0000 Subject: [PATCH] add test for webcam.capture --- poetry.lock | 104 +++++++++++++++++++++++++++++++++++++++++++++++- pyproject.toml | 6 +++ webcam__test.py | 37 +++++++++++++++++ 3 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 webcam__test.py diff --git a/poetry.lock b/poetry.lock index c3798b4..2b30e37 100644 --- a/poetry.lock +++ b/poetry.lock @@ -13,6 +13,22 @@ pyfiglet = ">=0.7.2" pypiwin32 = "*" wcwidth = "*" +[[package]] +category = "dev" +description = "Atomic file writes." +name = "atomicwrites" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.3.0" + +[[package]] +category = "dev" +description = "Classes Without Boilerplate" +name = "attrs" +optional = false +python-versions = "*" +version = "18.2.0" + [[package]] category = "main" description = "Extended pickling support for Python objects" @@ -21,6 +37,15 @@ optional = false python-versions = "*" version = "0.7.0" +[[package]] +category = "dev" +description = "Cross-platform colored terminal text." +marker = "sys_platform == \"win32\"" +name = "colorama" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "0.4.1" + [[package]] category = "main" description = "Composable style cycles" @@ -98,6 +123,15 @@ numpy = ">=1.10.0" pyparsing = ">=2.0.1,<2.0.4 || >2.0.4,<2.1.2 || >2.1.2,<2.1.6 || >2.1.6" python-dateutil = ">=2.1" +[[package]] +category = "dev" +description = "More routines for operating on iterables, beyond itertools" +marker = "python_version > \"2.7\"" +name = "more-itertools" +optional = false +python-versions = ">=3.4" +version = "6.0.0" + [[package]] category = "main" description = "Python package for creating and manipulating graphs and networks" @@ -136,6 +170,22 @@ optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" version = "5.4.1" +[[package]] +category = "dev" +description = "plugin and hook calling mechanisms for python" +name = "pluggy" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "0.8.1" + +[[package]] +category = "dev" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +name = "py" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.7.0" + [[package]] category = "main" description = "Pure-python FIGlet implementation" @@ -164,6 +214,49 @@ version = "223" [package.dependencies] pywin32 = ">=223" +[[package]] +category = "dev" +description = "pytest: simple powerful testing with Python" +name = "pytest" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "4.2.1" + +[package.dependencies] +atomicwrites = ">=1.0" +attrs = ">=17.4.0" +colorama = "*" +pluggy = ">=0.7" +py = ">=1.5.0" +setuptools = "*" +six = ">=1.10.0" + +[package.dependencies.more-itertools] +python = ">2.7" +version = ">=4.0.0" + +[[package]] +category = "dev" +description = "Thin-wrapper around the mock package for easier use with py.test" +name = "pytest-mock" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +version = "1.10.1" + +[package.dependencies] +pytest = ">=2.7" + +[[package]] +category = "dev" +description = "Stub packages, modules and attributes." +name = "pytest-stub" +optional = false +python-versions = "*" +version = "0.1.0" + +[package.dependencies] +pytest = ">=2.9.0" + [[package]] category = "main" description = "Extensions to the standard Python datetime module" @@ -241,12 +334,15 @@ python-versions = "*" version = "0.1.7" [metadata] -content-hash = "241ac2d244772c796df0e4572c14bb30b0c144a93c7dbe7b406ec95d831a8194" +content-hash = "97b5f05774ddf8b42f1bdd96adf84f5203a9a76c39c2cca810946c5b83ab3494" python-versions = "^3.7.2" [metadata.hashes] asciimatics = ["9101b0b6885542f324980bbe13a772475cd6a12678f601228eaaea412db919ab", "ccfc28a04ae39fa6f73bbf8a45cef99476df3fefafb451f67598453921c1d4ce"] +atomicwrites = ["03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4", "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"] +attrs = ["10cbf6e27dbce8c30807caf056c8eb50917e0eaafe86347671b57254006c3e69", "ca4be454458f9dec299268d472aaa5a11f67a4ff70093396e1ceae9c76cf4bbb"] cloudpickle = ["bf0b95dabf35645bc070a3f3d2f6e5c4ee8b247e2dfeb8022ad53bb2fe1bf03a", "d894ba62b0a04c3ccd482f6bc720dd02d4febcf320f5916c33d258b85d8409b1"] +colorama = ["05eed71e2e327246ad6b38c540c4a3117230b19679b875190486ddd2d721422d", "f8ac84de7840f5b9c4e3347b3c1eaa50f7e49c2b07596221daec5edaabbd7c48"] cycler = ["1d8a5ae1ff6c5cf9b93e8811e581232ad8920aeec647c37316ceac982b08cb2d", "cd7b2d1018258d7247a71425e9f26463dfb444d411c39569972f4ce586b0c9d8"] dask = ["2e70135d6856805699b52774d8e0cec41beda92bdfc9f9c776962b4bfb34822c", "a2ac2ed768c1ab7de8c3937faa8af50993deb1d0518777743bb72cbc07cb42ba"] decorator = ["33cd704aea07b4c28b3eb2c97d288a06918275dac0ecebdaf1bc8a48d98adb9e", "cabb249f4710888a2fc0e13e9a16c343d932033718ff62e1e9bc93a9d3a9122b"] @@ -255,13 +351,19 @@ funcy = ["b2d424c83cf8e0b6e90708e7325bbd6240008993479e7c273f53d8b220d18f1e", "b5 future = ["67045236dcfd6816dc439556d009594abf643e5eb48992e36beac09c2ca659b8"] kiwisolver = ["0ee4ed8b3ae8f5f712b0aa9ebd2858b5b232f1b9a96b0943dceb34df2a223bc3", "0f7f532f3c94e99545a29f4c3f05637f4d2713e7fd91b4dd8abfc18340b86cd5", "1a078f5dd7e99317098f0e0d490257fd0349d79363e8c923d5bb76428f318421", "1aa0b55a0eb1bd3fa82e704f44fb8f16e26702af1a073cc5030eea399e617b56", "2874060b91e131ceeff00574b7c2140749c9355817a4ed498e82a4ffa308ecbc", "379d97783ba8d2934d52221c833407f20ca287b36d949b4bba6c75274bcf6363", "3b791ddf2aefc56382aadc26ea5b352e86a2921e4e85c31c1f770f527eb06ce4", "4329008a167fac233e398e8a600d1b91539dc33c5a3eadee84c0d4b04d4494fa", "45813e0873bbb679334a161b28cb9606d9665e70561fd6caa8863e279b5e464b", "53a5b27e6b5717bdc0125338a822605084054c80f382051fb945d2c0e6899a20", "574f24b9805cb1c72d02b9f7749aa0cc0b81aa82571be5201aa1453190390ae5", "66f82819ff47fa67a11540da96966fb9245504b7f496034f534b81cacf333861", "79e5fe3ccd5144ae80777e12973027bd2f4f5e3ae8eb286cabe787bed9780138", "83410258eb886f3456714eea4d4304db3a1fc8624623fc3f38a487ab36c0f653", "8b6a7b596ce1d2a6d93c3562f1178ebd3b7bb445b3b0dd33b09f9255e312a965", "9576cb63897fbfa69df60f994082c3f4b8e6adb49cccb60efb2a80a208e6f996", "95a25d9f3449046ecbe9065be8f8380c03c56081bc5d41fe0fb964aaa30b2195", "a424f048bebc4476620e77f3e4d1f282920cef9bc376ba16d0b8fe97eec87cde", "aaec1cfd94f4f3e9a25e144d5b0ed1eb8a9596ec36d7318a504d813412563a85", "acb673eecbae089ea3be3dcf75bfe45fc8d4dcdc951e27d8691887963cf421c7", "b15bc8d2c2848a4a7c04f76c9b3dc3561e95d4dabc6b4f24bfabe5fd81a0b14f", "b1c240d565e977d80c0083404c01e4d59c5772c977fae2c483f100567f50847b", "c595693de998461bcd49b8d20568c8870b3209b8ea323b2a7b0ea86d85864694", "ce3be5d520b4d2c3e5eeb4cd2ef62b9b9ab8ac6b6fedbaa0e39cdb6f50644278", "e0f910f84b35c36a3513b96d816e6442ae138862257ae18a0019d2fc67b041dc", "ea36e19ac0a483eea239320aef0bd40702404ff8c7e42179a2d9d36c5afcb55c", "efabbcd4f406b532206b8801058c8bab9e79645b9880329253ae3322b7b02cd5", "f923406e6b32c86309261b8195e24e18b6a8801df0cfc7814ac44017bfcb3939"] matplotlib = ["16aa61846efddf91df623bbb4598e63be1068a6b6a2e6361cc802b41c7a286eb", "1975b71a33ac986bb39b6d5cfbc15c7b1f218f1134efb4eb3881839d6ae69984", "2b222744bd54781e6cc0b717fa35a54e5f176ba2ced337f27c5b435b334ef854", "317643c0e88fad55414347216362b2e229c130edd5655fea5f8159a803098468", "4269ce3d1b897d46fc3cc2273a0cc2a730345bb47e4456af662e6fca85c89dd7", "65214fd668975077cdf8d408ccf2b2d6bdf73b4e6895a79f8e99ce4f0b43fcdb", "74bc213ab8a92d86a0b304d9359d1e1d14168d4c6121b83862c9d8a88b89a738", "88949be0db54755995dfb0210d0099a8712a3c696c860441971354c3debfc4af", "8e1223d868be89423ec95ada5f37aa408ee64fe76ccb8e4d5f533699ba4c0e4a", "9fa00f2d7a552a95fa6016e498fdeb6d74df537853dda79a9055c53dfc8b6e1a", "c27fd46cab905097ba4bc28d5ba5289930f313fb1970c9d41092c9975b80e9b4", "c94b792af431f6adb6859eb218137acd9a35f4f7442cea57e4a59c54751c36af", "f4c12a01eb2dc16693887a874ba948b18c92f425c4d329639ece6d3bb8e631bb"] +more-itertools = ["0125e8f60e9e031347105eb1682cef932f5e97d7b9a1a28d9bf00c22a5daef40", "590044e3942351a1bdb1de960b739ff4ce277960f2425ad4509446dbace8d9d1"] networkx = ["45e56f7ab6fe81652fb4bc9f44faddb0e9025f469f602df14e3b2551c2ea5c8b"] numpy = ["0cdbbaa30ae69281b18dd995d3079c4e552ad6d5426977f66b9a2a95f11f552a", "2b0cca1049bd39d1879fa4d598624cafe82d35529c72de1b3d528d68031cdd95", "31d3fe5b673e99d33d70cfee2ea8fe8dccd60f265c3ed990873a88647e3dd288", "34dd4922aab246c39bf5df03ca653d6265e65971deca6784c956bf356bca6197", "384e2dfa03da7c8d54f8f934f61b6a5e4e1ebb56a65b287567629d6c14578003", "392e2ea22b41a22c0289a88053204b616181288162ba78e6823e1760309d5277", "4341a39fc085f31a583be505eabf00e17c619b469fef78dc7e8241385bfddaa4", "45080f065dcaa573ebecbfe13cdd86e8c0a68c4e999aa06bd365374ea7137706", "485cb1eb4c9962f4cd042fed9424482ec1d83fee5dc2ef3f2552ac47852cb259", "575cefd28d3e0da85b0864506ae26b06483ee4a906e308be5a7ad11083f9d757", "62784b35df7de7ca4d0d81c5b6af5983f48c5cdef32fc3635b445674e56e3266", "69c152f7c11bf3b4fc11bc4cc62eb0334371c0db6844ebace43b7c815b602805", "6ccfdcefd287f252cf1ea7a3f1656070da330c4a5658e43ad223269165cdf977", "7298fbd73c0b3eff1d53dc9b9bdb7add8797bb55eeee38c8ccd7906755ba28af", "79463d918d1bf3aeb9186e3df17ddb0baca443f41371df422f99ee94f4f2bbfe", "8bbee788d82c0ac656536de70e817af09b7694f5326b0ef08e5c1014fcb96bb3", "a863957192855c4c57f60a75a1ac06ce5362ad18506d362dd807e194b4baf3ce", "ae602ba425fb2b074e16d125cdce4f0194903da935b2e7fe284ebecca6d92e76", "b13faa258b20fa66d29011f99fdf498641ca74a0a6d9266bc27d83c70fea4a6a", "c2c39d69266621dd7464e2bb740d6eb5abc64ddc339cc97aa669f3bb4d75c103", "e9c88f173d31909d881a60f08a8494e63f1aff2a4052476b24d4f50e82c47e24", "f1a29267ac29fff0913de0f11f3a9edfcd3f39595f467026c29376fad243ebe3", "f69dde0c5a137d887676a8129373e44366055cf19d1b434e853310c7a1e68f93"] opencv-python = ["01ed8f83c1bc804995120825c729af9926bcc1dedbe85316ba4b5f81ed5e7287", "4d79b43434bef9ccb9921138d00c7f7d5dc8079cffe5d3765287e5b8275e0386", "51b32439bd85dcc3f520ef9de777f2c694b846d1d4344321e7bf090bffa62dc3", "55b8bd89a176cb0819b65d9df65900a6e4e95919579dedc34e10eaaf46c0f6a2", "5b6afc7f74e28c09f78886f0cffa67efc2b46542e439f0a045020a954c69e829", "6f8ec97c537b408d99d2cfbc9e929054e0bdecadda4c224ec2b21e18fcf48a06", "70012caadf2018575f15330bcf1d7659d0231580de5c146178154e420e9bef66", "7066dbceb01bd721515a583cc64485c594293a574d6b0925aca341c2accae520", "81cc092cade08093eeb48f2cdf8c1a1d5e0cc90d197403a721f6935f71d75e61", "8ecf3e50d7c5de510b71f5af33017a99b8bd476fbb70f464f6cc76a81bd2ff60", "97d2d77e0955404cf61d9a62e85bd8718108b11fc5a69d542bd7a7e2eb30990d", "98f12aff879895de6821289d538322d6b6d297ccfb71343056f3443f6d5c8c16", "9acea43d03440e7a0bd9a9ad599394382a529d49ec6995414797645acfc3e629", "a2e1bd69324e6d58b2c6932ca78c2ecb88dec8b2a3d31536e104623cafbc5b89", "a4feed61a55263a3af6bd17338a1712274c9dc775fe765ed706c706ab4a09ceb", "a72224ba58c7704ce8fc260ca65cfe7444d165362179f97d713234adc7f52b0e", "ae6f1aaa64d3b9a82792669e5be04d2544ce8c2e4a71ecfac09e0a4ed7b60908", "bfd358891a882cb08733e7edd1e76ea008520858de60cec185dce26530c0a36f", "c0d515ceb8231fa6565112d8c2490d2007656b7eb0c52d82b81708ac8412e426", "c86b42f12c602f815062f30c8583da702691a67920f5ea7607f1c796e6f153be", "d3c116b9502c657456fac22b3dad3be8701ef92f7ced2822a13121d167263057", "d477594c956dfbe6688323a9a06d5b3c6d3940c4b15bef7ce4f30d25f7837f1a", "d7626191eac985db4fda1db9cafb6428be614dd9ce3b6f5a83fdb93f1086980b", "db5632dfec289e69bddccbc39faf3cf1f5a840ed4ba3c1288ef3e21f68077722", "e50c73547a3e80d986db19b2cad3507bc7a5b4236f0071952aba80e0409c4806", "edbdded658021747a4235f178b91361d17b82031859db20731a963b8dafcab67", "f4afa2fd9d5c2ac25fc023babf6967f07e9143ce4fe73ebdcdc69a580f99b052"] pillow = ["01a501be4ae05fd714d269cb9c9f145518e58e73faa3f140ddb67fae0c2607b1", "051de330a06c99d6f84bcf582960487835bcae3fc99365185dc2d4f65a390c0e", "07c35919f983c2c593498edcc126ad3a94154184899297cc9d27a6587672cbaa", "0ae5289948c5e0a16574750021bd8be921c27d4e3527800dc9c2c1d2abc81bf7", "0b1efce03619cdbf8bcc61cfae81fcda59249a469f31c6735ea59badd4a6f58a", "0cf0208500df8d0c3cad6383cd98a2d038b0678fd4f777a8f7e442c5faeee81d", "163136e09bd1d6c6c6026b0a662976e86c58b932b964f255ff384ecc8c3cefa3", "18e912a6ccddf28defa196bd2021fe33600cbe5da1aa2f2e2c6df15f720b73d1", "24ec3dea52339a610d34401d2d53d0fb3c7fd08e34b20c95d2ad3973193591f1", "267f8e4c0a1d7e36e97c6a604f5b03ef58e2b81c1becb4fccecddcb37e063cc7", "3273a28734175feebbe4d0a4cde04d4ed20f620b9b506d26f44379d3c72304e1", "39fbd5d62167197318a0371b2a9c699ce261b6800bb493eadde2ba30d868fe8c", "4132c78200372045bb348fcad8d52518c8f5cfc077b1089949381ee4a61f1c6d", "4baab2d2da57b0d9d544a2ce0f461374dd90ccbcf723fe46689aff906d43a964", "4c678e23006798fc8b6f4cef2eaad267d53ff4c1779bd1af8725cc11b72a63f3", "4d4bc2e6bb6861103ea4655d6b6f67af8e5336e7216e20fff3e18ffa95d7a055", "505738076350a337c1740a31646e1de09a164c62c07db3b996abdc0f9d2e50cf", "5233664eadfa342c639b9b9977190d64ad7aca4edc51a966394d7e08e7f38a9f", "52e2e56fc3706d8791761a157115dc8391319720ad60cc32992350fda74b6be2", "5337ac3280312aa065ed0a8ec1e4b6142e9f15c31baed36b5cd964745853243f", "5ccd97e0f01f42b7e35907272f0f8ad2c3660a482d799a0c564c7d50e83604d4", "5d95cb9f6cced2628f3e4de7e795e98b2659dfcc7176ab4a01a8b48c2c2f488f", "634209852cc06c0c1243cc74f8fdc8f7444d866221de51125f7b696d775ec5ca", "75d1f20bd8072eff92c5f457c266a61619a02d03ece56544195c56d41a1a0522", "7eda4c737637af74bac4b23aa82ea6fbb19002552be85f0b89bc27e3a762d239", "801ddaa69659b36abf4694fed5aa9f61d1ecf2daaa6c92541bbbbb775d97b9fe", "825aa6d222ce2c2b90d34a0ea31914e141a85edefc07e17342f1d2fdf121c07c", "87fe838f9dac0597f05f2605c0700b1926f9390c95df6af45d83141e0c514bd9", "9c215442ff8249d41ff58700e91ef61d74f47dfd431a50253e1a1ca9436b0697", "a3d90022f2202bbb14da991f26ca7a30b7e4c62bf0f8bf9825603b22d7e87494", "a631fd36a9823638fe700d9225f9698fb59d049c942d322d4c09544dc2115356", "a6523a23a205be0fe664b6b8747a5c86d55da960d9586db039eec9f5c269c0e6", "a756ecf9f4b9b3ed49a680a649af45a8767ad038de39e6c030919c2f443eb000", "ac036b6a6bac7010c58e643d78c234c2f7dc8bb7e591bd8bc3555cf4b1527c28", "b117287a5bdc81f1bac891187275ec7e829e961b8032c9e5ff38b70fd036c78f", "ba04f57d1715ca5ff74bb7f8a818bf929a204b3b3c2c2826d1e1cc3b1c13398c", "ba6ef2bd62671c7fb9cdb3277414e87a5cd38b86721039ada1464f7452ad30b2", "c8939dba1a37960a502b1a030a4465c46dd2c2bca7adf05fa3af6bea594e720e", "cd878195166723f30865e05d87cbaf9421614501a4bd48792c5ed28f90fd36ca", "cee815cc62d136e96cf76771b9d3eb58e0777ec18ea50de5cfcede8a7c429aa8", "d1722b7aa4b40cf93ac3c80d3edd48bf93b9208241d166a14ad8e7a20ee1d4f3", "d7c1c06246b05529f9984435fc4fa5a545ea26606e7f450bdbe00c153f5aeaad", "db418635ea20528f247203bf131b40636f77c8209a045b89fa3badb89e1fcea0", "e1555d4fda1db8005de72acf2ded1af660febad09b4708430091159e8ae1963e", "e9c8066249c040efdda84793a2a669076f92a301ceabe69202446abb4c5c5ef9", "e9f13711780c981d6eadd6042af40e172548c54b06266a1aabda7de192db0838", "f0e3288b92ca5dbb1649bd00e80ef652a72b657dc94989fa9c348253d179054b", "f227d7e574d050ff3996049e086e1f18c7bd2d067ef24131e50a1d3fe5831fbc", "f62b1aeb5c2ced8babd4fbba9c74cbef9de309f5ed106184b12d9778a3971f15", "f71ff657e63a9b24cac254bb8c9bd3c89c7a1b5e00ee4b3997ca1c18100dac28", "fc9a12aad714af36cf3ad0275a96a733526571e52710319855628f476dcb144e"] +pluggy = ["8ddc32f03971bfdf900a81961a48ccf2fb677cf7715108f85295c67405798616", "980710797ff6a041e9a73a5787804f848996ecaa6f8a1b1e08224a5894f2074a"] +py = ["bf92637198836372b520efcba9e020c330123be8ce527e535d185ed4b6f45694", "e76826342cefe3c3d5f7e8ee4316b80d1dd8a300781612ddbc765c17ba25a6c6"] pyfiglet = ["c6c2321755d09267b438ec7b936825a4910fec696292139e664ca8670e103639", "d555bcea17fbeaf70eaefa48bb119352487e629c9b56f30f383e2c62dd67a01c"] pyparsing = ["0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04", "281683241b25fe9b80ec9d66017485f6deff1af5cde372469134b56ca8447a07", "8f1e18d3fd36c6795bb7e02a39fd05c611ffc2596c1e0d995d34d67630426c18", "9e8143a3e15c13713506886badd96ca4b579a87fbdf49e550dbfc057d6cb218e", "b8b3117ed9bdf45e14dcc89345ce638ec7e0e29b2b579fa1ecf32ce45ebac8a5", "e4d45427c6e20a59bf4f88c639dcc03ce30d193112047f94012102f235853a58", "fee43f17a9c4087e7ed1605bd6df994c6173c1e977d7ade7b651292fab2bd010"] pypiwin32 = ["67adf399debc1d5d14dffc1ab5acacb800da569754fafdc576b2a039485aa775", "71be40c1fbd28594214ecaecb58e7aa8b708eabfa0125c8a109ebd51edbd776a"] +pytest = ["80cfd9c8b9e93f419abcc0400e9f595974a98e44b6863a77d3e1039961bfc9c4", "c2396a15726218a2dfef480861c4ba37bd3952ebaaa5b0fede3fc23fddcd7f8c"] +pytest-mock = ["4d0d06d173eecf172703219a71dbd4ade0e13904e6bbce1ce660e2e0dc78b5c4", "bfdf02789e3d197bd682a758cae0a4a18706566395fbe2803badcd1335e0173e"] +pytest-stub = ["0d5ecfaa01cc3682a3292b112e9c2d0223de69a43b29502b7568cb4e3c6635a5", "849f9c8007e68b542b96db833037749a49e9d66c413a01dc5302510e62202d5e"] python-dateutil = ["7e6584c74aeed623791615e26efd690f29817a27c73085b78e4bad02493df2fb", "c89805f6f4d64db21ed966fda138f8a5ed7a4fdbc1a8ee329ce1b74e3c74da9e"] pywavelets = ["01683797c855d10d9ee78f46272b99b02f70a474e35baa54d150a385be9a9253", "1096feae3ad08fa844978cbd1d8476cab34b5364b7f087f5878cd5b451001574", "1732bd3638fae0693b7e30db63034f4f4ef36dc3018daf1da7ff024f060fc6e9", "1a07231da072e3085b0c59cff6a2aa0ed3b17983f16d2b561764f5fa7207c8ac", "25a98babb7907b4e6a5b508e519cd3179e6dc17c3840fb1b6306e82fdd4bcd3e", "31417d6e5454881514974d40f7df40cc8588a3818b778137f2d51fd06f0ab7d9", "351995c681d2a1ec556996bb645b8acdb0d2e4b80fb3617c1104a8d3cb048dfe", "3c5cece36d4e17d395be6e9ac6b80ce7b774a1f71c251756c6163e63b6d878dc", "4d739ee8d8b51098927709aac46ead2e965e397b6a5ac50047bd65a3d1a79ba6", "4e4f993d2e3bc9c5eb6db8b3c70c94143831f32f56a9dd19bd35d85066bc5a37", "64fd7615023e8cc043f084a61a562059ec0e14eb843a03662e9dbfb66deaae92", "72b042ef5a21c0617eb8ba2ef524f107f3e5def3507105aad3d986c7b4544716", "8b7be53059ac21a3b27d5e35be272c2b092b6348b336ad9c9c57f70697ab17a1", "95a0a0ae8c4024a3c0658e496fd52a2baeefad2e521a4de132b668d2001e5a24", "ae741e1919c08d1445362d2af4fb02ef3c611f2e3349ca0ba2a22fab494b86cc", "b4428012419ada0c691240a388798a6c839477c5a968751ebfec663c0b4fe801", "bc2f7ac5a3febf98e471dad4bc07e96a89bf954660d7d993d1d9486b0ce60aaa", "c00e1b7903afa608b6eadf44da8d4d05ffeab99769965aed9e8fad85cd28e16c", "c1473db14003eb544b08d94f3ac7bcebe8c839dc2d3dcdaf0db8c3a17b551674", "d23f3fab4e3c81706517d99e1d3e0dcbce24009cf540a223b5d29baa7b781f4f", "d27656cc329bf1b7ed64402de892bbee1d10b6cf0210a2d61d2f8a1c809e52a4", "d7b0551df47ed6d2e7438d7c96339f2a8749e4687407a5bf0bb5a6eeb8ba8ffa", "ee1e04e48f2160467c59fbf561eca8285d79573d2f98547c059bd05bcfd34321", "f1d76e5c679f3668f6fcb4f6cfb31863ebcf86c742a64435264dc5d3a41f7ce0", "f1eefc1220d754bd572fb409de844b9d2d5506c5dee5a72063343270146a8246", "f7685816885e217acf90965dd55863152b0865d3b15cf7f2286b39aaf4bc4913"] pywin32 = ["22e218832a54ed206452c8f3ca9eff07ef327f8e597569a4c2828be5eaa09a77", "32b37abafbfeddb0fe718008d6aada5a71efa2874f068bee1f9e703983dcc49a", "35451edb44162d2f603b5b18bd427bc88fcbc74849eaa7a7e7cfe0f507e5c0c8", "4eda2e1e50faa706ff8226195b84fbcbd542b08c842a9b15e303589f85bfb41c", "5f265d72588806e134c8e1ede8561739071626ea4cc25c12d526aa7b82416ae5", "6852ceac5fdd7a146b570655c37d9eacd520ed1eaeec051ff41c6fc94243d8bf", "6dbc4219fe45ece6a0cc6baafe0105604fdee551b5e876dc475d3955b77190ec", "9bd07746ce7f2198021a9fa187fa80df7b221ec5e4c234ab6f00ea355a3baf99"] diff --git a/pyproject.toml b/pyproject.toml index 30c1e6a..42b4ec9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,12 @@ opencv-python = "^4.0" scikit-image = "^0.14.2" asciimatics = "^1.10" funcy = "^1.11" +Pillow = "^5.4" + +[tool.poetry.dev-dependencies] +pytest-mock = "^1.10" +pytest = "^4.2" +pytest-stub = "^0.1.0" [build-system] requires = ["poetry>=0.12"] diff --git a/webcam__test.py b/webcam__test.py new file mode 100644 index 0000000..b8246e9 --- /dev/null +++ b/webcam__test.py @@ -0,0 +1,37 @@ +import numpy +import utilities.face_utility + +from PIL import Image +from webcam import capture + + +ret = True +frame = None +faces = [] +image = numpy.array(Image.new('L', (100, 100), 0)) + + +def test_capture(mocker): + + video_capture = mocker.stub() + video_capture.grab = mocker.stub() + video_capture.retrieve = mocker.MagicMock(return_value=(ret, frame)) + + mock_cv2_VideoCapture = mocker.patch('cv2.VideoCapture', autospec=True) + mock_cv2_VideoCapture.return_value = video_capture + + mock_cv2_resize = mocker.patch('cv2.resize', autoSpec=True) + mock_cv2_resize.return_value = image + + screen = mocker.stub() + screen.clear = mocker.stub() + screen.print_at = mocker.stub() + screen.refresh = mocker.stub() + + mock_identify_faces = mocker.patch.object(utilities.face_utility, 'identify_faces', autoSpec=True) + + capture(screen) + + mock_cv2_VideoCapture.assert_called_with(0) + mock_cv2_resize.assert_called_with(frame, None) + mock_identify_faces.assert_called_with(image)