mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2024-12-19 04:57:54 +00:00
feat(py3): Update Python internal data model refs
As of Python 2.7, some of [the `func_*` and `im_*` attributes also can be accessed through their corresponding `__*__` attributes for Python 3 compatibility](https://docs.python.org/2/reference/datamodel.html?highlight=__self__#the-standard-type-hierarchy). I searched for all such occurrences and this is all that needed changing AFAICT. Converts 9 test errors to errors with new exceptions and improves Python 3 test coverage a smidge: ```diff --- ../../.tox/make-test-py3-all-old.log 2020-10-04 15:16:34.054975263 -0700 +++ ../../.tox/make-test-py3-all-new.log 2020-10-04 15:59:59.355692613 -0700 @@ -2273,9 +2273,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_node.IntroducerNotListening.test_port_none_introducer @@ -5935,9 +5935,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_client.Basic.test_web_apiauthtoken =============================================================================== @@ -7146,9 +7146,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_introducer.Node.test_create @@ -7171,9 +7171,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_introducer.Node.test_furl @@ -7550,9 +7550,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_node.TestCase.test_logdir_is_str =============================================================================== @@ -8448,9 +8448,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.test_system.Connections.test_rref allmydata.test.test_system.SystemTest.test_filesystem @@ -8567,9 +8567,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.web.test_introducer.IntroducerWeb.test_basic_information =============================================================================== @@ -8589,9 +8589,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.web.test_introducer.IntroducerWeb.test_json_front_page =============================================================================== @@ -8611,9 +8611,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.web.test_introducer.IntroducerWeb.test_tahoe_css =============================================================================== @@ -8633,9 +8633,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' allmydata.test.web.test_introducer.IntroducerWeb.test_welcome =============================================================================== @@ -8742,9 +8742,9 @@ node.Node.__init__(self, config, main_tub, control_tub, i2p_provider, tor_provider) File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 734, in __init__ self.setup_logging() - File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 824, in setup_logging - ob = o.im_self -builtins.AttributeError: 'function' object has no attribute 'im_self' + File "/home/rpatterson/src/work/sfu/tahoe-lafs/src/allmydata/node.py", line 826, in setup_logging + newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__) +builtins.AttributeError: module 'types' has no attribute 'UnboundMethodType' + test_exit=1 + ./.tox/py36-coverage/bin/coverage combine + ./.tox/py36-coverage/bin/coverage html @@ -8802,7 +8802,7 @@ src/allmydata/mutable/repairer.py 57 37 18 0 29% 13, 15, 17, 19, 29-34, 65-71, 74-126, 129-131 src/allmydata/mutable/retrieve.py 489 123 120 33 71% 46, 48, 50, 52, 56, 58, 60, 62, 64, 89-90, 133, 186-193, 204-208, 211-212, 224-226, 231, 240, 251, 312, 318, 344-354, 377, 385-386, 399-400, 425-434, 490, 501, 515-516, 529-540, 564-578, 591-592, 629-630, 653-654, 674-675, 681-682, 698, 712-729, 758-760, 765, 772-774, 790-792, 871, 883, 909-910, 919-941, 965-966, 981-994, 999-1005, 129->133, 167->169, 169->171, 201->204, 223->224, 230->231, 237->239, 239->240, 243->247, 249->251, 309->312, 317->318, 376->377, 381->385, 391->394, 396->399, 424->425, 489->490, 499->501, 514->515, 590->591, 628->629, 652->653, 673->674, 677->687, 680->681, 687->694, 694->698, 755->764, 764->765, 868->871, 880->883, 964->965 src/allmydata/mutable/servermap.py 612 240 186 26 56% 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 74, 130-139, 142, 148, 159-161, 175, 177, 183, 186-199, 206, 213, 217-220, 231, 234-238, 243-252, 255-259, 315, 328-350, 358-363, 370-372, 379, 429, 433, 443-447, 495, 498, 506-508, 514-516, 569-570, 603-611, 623-638, 718-721, 732-741, 792, 796, 803-804, 850-851, 872-874, 911-915, 929-945, 961-975, 982-999, 1003-1013, 1043-1045, 1050-1052, 1060-1064, 1069-1070, 1093-1100, 1106-1186, 1214-1215, 1232-1233, 313->315, 427->429, 432->433, 439->443, 459->461, 493->495, 497->498, 504->506, 509->514, 566->569, 597->603, 687->exit, 702->exit, 710->exit, 717->718, 727->732, 759->exit, 791->792, 795->796, 869->872, 1039->1043, 1047->1050, 1059->1060, 1066->1069, 1092->1093, 1213->1214 -src/allmydata/node.py 388 84 146 33 75% 120, 132, 190, 241, 243-245, 278, 284, 294-295, 303-306, 315, 320, 339, 341, 361, 393-396, 422, 449, 453, 490, 493, 500, 511-512, 548, 566, 574, 581, 583, 590-591, 601, 612, 629-633, 679, 681, 738-741, 747, 756, 764, 792-805, 808-809, 814-815, 825-846, 189->190, 240->241, 242->243, 277->278, 314->315, 319->320, 338->339, 340->341, 360->361, 391->393, 421->422, 448->449, 451->453, 489->490, 492->493, 499->500, 510->511, 547->548, 565->566, 573->574, 580->581, 582->583, 589->590, 600->601, 611->612, 622->629, 673->679, 680->681, 737->738, 746->747, 763->764, 821->830, 823->821 +src/allmydata/node.py 388 82 146 33 76% 120, 132, 190, 241, 243-245, 278, 284, 294-295, 303-306, 315, 320, 339, 341, 361, 393-396, 422, 449, 453, 490, 493, 500, 511-512, 548, 566, 574, 581, 583, 590-591, 601, 612, 629-633, 679, 681, 738-741, 747, 756, 764, 792-805, 808-809, 814-815, 827-846, 189->190, 240->241, 242->243, 277->278, 314->315, 319->320, 338->339, 340->341, 360->361, 391->393, 421->422, 448->449, 451->453, 489->490, 492->493, 499->500, 510->511, 547->548, 565->566, 573->574, 580->581, 582->583, 589->590, 600->601, 611->612, 622->629, 673->679, 680->681, 737->738, 746->747, 763->764, 821->830, 823->821 src/allmydata/nodemaker.py 97 23 38 10 70% 49, 61, 66, 70, 81, 94, 107-115, 130-138, 141-150, 57->61, 65->66, 69->70, 79->81, 86->95, 90->94, 104->107, 124->exit, 129->130, 129->133 src/allmydata/scripts/admin.py 51 20 2 1 60% 9-14, 25, 28, 31-37, 40-46, 57, 59, 61-66, 56->57 src/allmydata/scripts/backupdb.py 146 91 14 1 36% 84-91, 94-96, 99, 103, 106, 111-114, 117-119, 122, 125, 128, 176-221, 231-242, 245-263, 266-272, 308-324, 327-333, 336-341, 306->308 @@ -8899,7 +8899,7 @@ src/allmydata/windows/fixups.py 133 133 54 0 0% 1-237 src/allmydata/windows/registry.py 42 42 12 0 0% 1-77 ------------------------------------------------------------------------------------------------ -TOTAL 27477 11800 8244 605 54% +TOTAL 27477 11798 8244 605 54% 18 files skipped due to complete coverage. + '[' '!' -z 1 ']' ```
This commit is contained in:
parent
b2332b5bf1
commit
baa36157b6
@ -821,7 +821,7 @@ class Node(service.MultiService):
|
||||
for o in twlog.theLogPublisher.observers:
|
||||
# o might be a FileLogObserver's .emit method
|
||||
if type(o) is type(self.setup_logging): # bound method
|
||||
ob = o.im_self
|
||||
ob = o.__self__
|
||||
if isinstance(ob, twlog.FileLogObserver):
|
||||
newmeth = types.UnboundMethodType(formatTimeTahoeStyle, ob, ob.__class__)
|
||||
ob.formatTime = newmeth
|
||||
|
Loading…
Reference in New Issue
Block a user